国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++面試八股文:了解auto關鍵字嗎?

這篇具有很好參考價值的文章主要介紹了C++面試八股文:了解auto關鍵字嗎?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第15面:

面試官:了解auto關鍵字嗎?

二師兄:嗯,了解一些(我很熟悉)。

面試官:說一說auto的用法吧?

二師兄:auto主要是為了編譯器進行類型推導。比如:

auto i = 42;	//i 被推導位int型
std::vector<int> vi;
for(auto it = vi.cbegin(); it != vi.cend(); ++it)
{
    std::cout << *it << std::endl;
}	//迭代器的類型又臭又長
auto l_fun = [](int a, int b){return a+b;}	//lambda的類型基本上不可能手寫出來

二師兄:也可以作為函數(shù)返回類型的占位符:

auto add(int a, int b)->(decltype(a+b))
{
    return a + b;
}	//C++11

auto add(int a, int b)
{
    return a + b;
}	//C++14及以后

二師兄:在C++20中還可以推導參數(shù)的類型,從而實現(xiàn)類似模板的效果:

auto add(auto a,auto b)
{
    return a+b;
}  //C++20  此時可以這樣使用 auto res = add(std::string("hello"),"world");

//類似以下效果,不過上面的寫法更簡潔
template<typename T,typename U>
auto add(T&& t, U&& u)->decltype(t+u)
{
    return t + u;
}

面試官:嗯,不錯。你覺得auto有哪些好處?

二師兄:主要有三點吧。一是使用auto關鍵字定義的變量必須被初始化。

int a;	//未初始化,直接使用是未定義的行為
auto b;	//無法通過編譯,必須被初始化
auto b = 1024;	//等于 int b = 1024;

這個特征可以避免變量未初始化就使用所導致的未定義的行為。第二點就是減少五吳意義的代碼,如迭代器的類型、lambda表達式的類型等。第三就是簡化泛型編程。如前文代碼所示。

面試官:好的。你還有什么要補充的嗎?

二師兄:哦,還有一點,auto關鍵字在定義多個變量時,多個變量要推導出同一類型才可通過編譯:

auto a = 42, b = 3.14;	//無法通過編譯
auto a = 42, b = 1024;	//a,b被推導位int型

面試官:好的,今天的面試就到這里,回去等通知吧。

今日二師兄的表現(xiàn)很好,基本上回答出了auto關鍵字的語法特性。實際上auto關鍵字在C++98/03中就有了,當作自動變量修飾符使用:

int main(int argc, char* argv[])
{
    int a = 42;			//自動變量
    auto int b = 1024;	//自動變量
}

大伙應該能看出來,在C++98/03中的auto關鍵字是否存在都不影響程序正確性,所以很少有程序員在在C++98/03使用auto關鍵字。C++標準委員會在C++11標準的制定中想到了被冷落的auto關鍵字,并在C++11新標準中賦予了它新的能力。

好了,今日份面試到這里就結束了。二師兄的表現(xiàn)不錯,求各位小伙伴一個贊不過分吧。

關注我,帶你21天“精通”C++!(狗頭)文章來源地址http://www.zghlxwxcb.cn/news/detail-485582.html

到了這里,關于C++面試八股文:了解auto關鍵字嗎?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C++面試八股文:std::vector了解嗎?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第23面: 面試官: vector 了解嗎? 二師兄:嗯,用過。 面試官:那你知道 vector 底層是如何實現(xiàn)的嗎? 二師兄: vector 底層使用動態(tài)數(shù)組來存儲元素對象,同時使用 size 和 capacity 記錄當前元素的數(shù)量和當前動態(tài)數(shù)組的容量。如果

    2024年02月10日
    瀏覽(28)
  • C++面試八股文:了解sizeof操作符嗎?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第10面: 面試官:了解 sizeof 操作符嗎? 二師兄:略微了解(不就是求大小的嘛。。) 面試官:請講以下如何使用 sizeof ? 二師兄: sizeof 主要是求變量或者類型的大小。直接使用 sizeof(type) 或 sizeof(var) 即可。 面試官:嗯。 s

    2024年02月08日
    瀏覽(21)
  • C++面試八股文:static_cast了解一下?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第20面: 面試官:C++中支持哪些類型轉換? 二師兄:C++支持C風格的類型轉換,并在C++11引入新的規(guī)范了類型轉換。 二師兄:C++11引入四種新的類型轉換,分別是 static_cast 、 dynamic_cast 、 const_cast 、和 reinterpret_cast 。 二師

    2024年02月09日
    瀏覽(25)
  • C++面試八股文:技術勘誤

    C++面試八股文:技術勘誤

    不知不覺,《C++面試八股文》已經(jīng)更新30篇了,這是我第一次寫技術博客,由于個人能力有限,出現(xiàn)了不少紕漏,在此向各位讀者小伙伴們致歉。 為了不誤導更多的小伙伴,以后會不定期的出勘誤文章,請各位小伙伴留意。 在《C++面試八股文:C++中,設計一個類要注意哪些東

    2024年02月11日
    瀏覽(29)
  • C++面試八股文:如何避免死鎖?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第31面: 面試官:什么是鎖?有什么作用? 二師兄:在C++中,鎖(Lock)是一種同步工具,用于保護共享資源,防止多個線程同時訪問,從而避免數(shù)據(jù)競爭和不一致。 面試官:有哪些鎖? 二師兄:從種類上分,可以分為普通鎖、

    2024年02月12日
    瀏覽(28)
  • C++面試八股文:什么是智能指針?

    C++面試八股文:什么是智能指針?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第19面: 面試官:什么是智能指針? 二師兄:智能指針是C++11引入的類模板,用于管理資源,行為類似于指針,但不需要手動申請、釋放資源,所以稱為智能指針。 面試官:C++11引入了哪些智能指針? 二師兄:三種,分別是 s

    2024年02月09日
    瀏覽(24)
  • C++面試八股文:聊一聊指針?

    C++面試八股文:聊一聊指針?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第17面: 面試官:聊一聊指針? 二師兄:好的。 面試官:你覺得指針本質上是什么? 二師兄:這要從內存地址開始說起了。如果有一塊容量是1G的內存,假設它的地址是從 0x00000000 到 0x3fffffff ,每一個字節(jié)都對應一個地址。當

    2024年02月09日
    瀏覽(24)
  • C++面試八股文:用過STL嗎?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第21面: 面試官:用過STL嗎? 二師兄:(每天都用好嗎。。)用過一些。 面試官:你知道STL是什么? 二師兄:STL是指標準模板庫( Standard Template Library ),是C++區(qū)別于C語言的特征之一。 面試官:那你知道STL的六大部件是什么

    2024年02月09日
    瀏覽(15)
  • C++面試八股文:什么是構造函數(shù)?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第29面: 面試官:什么是構造函數(shù)? 二師兄:構造函數(shù)是一種特殊的成員函數(shù),用于創(chuàng)建和初始化類的對象。構造函數(shù)的名稱與類的名稱相同,并且沒有返回類型。構造函數(shù)在對象被創(chuàng)建時自動調用。 面試官:什么是默認構造

    2024年02月11日
    瀏覽(26)
  • C++面試八股文:什么是RAII?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第13面: 面試官:什么是 RAII ? 二師兄: RAII 是 Resource Acquisition Is Initialization 的縮寫。翻譯成中文是資源獲取即初始化。 面試官: RAII 有什么特點和優(yōu)勢? 二師兄:主要的特點是,在對象初始化時獲取資源,在對象析構時釋放

    2024年02月08日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包