C++11關(guān)于auto關(guān)鍵字的使用示例
一.概述
auto關(guān)鍵字在c++98中已經(jīng)出現(xiàn),在98中定義為具有自動(dòng)存儲(chǔ)器的局部變量,
c++11中標(biāo)準(zhǔn)委員會(huì)重新定義了auto關(guān)鍵字,表示一個(gè)類型占位符,告訴編譯器,auto聲明變量的類型必須由編譯器在編譯時(shí)期推導(dǎo)
而得。
注意事項(xiàng):
1.auto關(guān)鍵字類型推斷發(fā)生在編譯期,程序運(yùn)行時(shí)不會(huì)造成效率降低
2.auto關(guān)鍵字定義時(shí)就需要初始化
3.auto僅僅是一個(gè)占位符,它并不是一個(gè)真正的類型, 因此sizeof(auto)是錯(cuò)誤的
4.auto不能作為函數(shù)的參數(shù)
5.auto不能定義數(shù)組,如auto a[3] = {1,2,3}; 錯(cuò)誤
二.使用
1.自動(dòng)推導(dǎo)變量類型
auto a = 1;
auto b = 2LL;
auto c = 1.0f;
auto d = "woniu201";
printf("%s\n", typeid(a).name());
printf("%s\n", typeid(b).name());
printf("%s\n", typeid(c).name());
printf("%s\n", typeid(d).name());
2.簡(jiǎn)化代碼
//在對(duì)一個(gè)vector容器遍歷的時(shí)候,傳統(tǒng)的方法如下:
vector<int> v;
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
printf("%d ", *it);
}
//使用auto關(guān)鍵字,簡(jiǎn)化后的方法如下:
for (auto it = v.begin(); it != v.end(); it++)
{
printf("\n%d ", *it);
}
//auto關(guān)鍵字的存在使得使用STL更加容易,代碼更加清晰。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
C語(yǔ)言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
C++20 統(tǒng)一容器擦除:std::erase 和 std::eraseif的實(shí)現(xiàn)
本文主要介紹了C++20 統(tǒng)一容器擦除:std::erase 和 std::erase_if的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
VsCode安裝和配置c/c++環(huán)境小白教程(圖文)
本文主要介紹了VsCode安裝和配置c/c++環(huán)境小白教程,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
使用Qt/C++實(shí)現(xiàn)WGS84,高德GCJ-02與百度BD-09坐標(biāo)系間相互轉(zhuǎn)化
這篇文章主要為大家詳細(xì)介紹了如何使用Qt實(shí)現(xiàn)WGS84、高德GCJ-02與百度BD-09坐標(biāo)系間相互轉(zhuǎn)化,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-07-07
C++簡(jiǎn)明圖解分析靜態(tài)成員與單例設(shè)計(jì)模式
與靜態(tài)數(shù)據(jù)成員不同,靜態(tài)成員函數(shù)的作用不是為了對(duì)象之間的溝通,而是為了能處理靜態(tài)數(shù)據(jù)成員,靜態(tài)成員函數(shù)沒(méi)有this指針。既然它沒(méi)有指向某一對(duì)象,也就無(wú)法對(duì)一個(gè)對(duì)象中的非靜態(tài)成員進(jìn)行默認(rèn)訪問(wèn)2022-06-06
淺析C++調(diào)用Java的Jar包(帶參數(shù))問(wèn)題
這篇文章主要介紹了C++調(diào)用Java的Jar包(帶參數(shù))問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11
詳解C++設(shè)計(jì)模式編程中責(zé)任鏈模式的應(yīng)用
這篇文章主要介紹了C++設(shè)計(jì)模式編程中責(zé)任鏈模式的應(yīng)用,責(zé)任鏈模式使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,需要的朋友可以參考下2016-03-03

