国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

利為匯wordpress教程廈門(mén)關(guān)鍵詞seo排名網(wǎng)站

利為匯wordpress教程,廈門(mén)關(guān)鍵詞seo排名網(wǎng)站,html5網(wǎng)站開(kāi)發(fā)工具,定制型網(wǎng)站建設(shè)文章目錄 1. 基本語(yǔ)法1.1 decalaration默認(rèn)獲取值引用&自動(dòng)類(lèi)型推導(dǎo)(auto) 1.2 container數(shù)組STL容器初始化列表自定義類(lèi)型返回容器的函數(shù) 2. 其他示例2.1 遍歷數(shù)組2.2 遍歷vector,并修改元素2.3 使用常量引用遍歷,防止容器中…

文章目錄

  • 1. 基本語(yǔ)法
    • 1.1 decalaration
      • 默認(rèn)獲取值
      • 引用&
      • 自動(dòng)類(lèi)型推導(dǎo)(auto)
    • 1.2 container
      • 數(shù)組
      • STL容器
      • 初始化列表
      • 自定義類(lèi)型
      • 返回容器的函數(shù)
  • 2. 其他示例
    • 2.1 遍歷數(shù)組
    • 2.2 遍歷vector,并修改元素
    • 2.3 使用常量引用遍歷,防止容器中的值被誤修改
  • 3. 小結(jié)

C++11 引入了基于范圍的for循環(huán),自動(dòng)迭代一個(gè)范圍對(duì)象中的每個(gè)元素,而無(wú)需顯式地使用循環(huán)變量或索引,是一種簡(jiǎn)化數(shù)組遍歷、簡(jiǎn)化容器遍歷的語(yǔ)法糖。

語(yǔ)法糖,“錦上添花”的意思,并不會(huì)引入新的功能或者改變語(yǔ)言的核心功能,只是讓代碼更容易理解、編寫(xiě)或維護(hù)。提供簡(jiǎn)潔語(yǔ)法,同時(shí)不影響性能。

1. 基本語(yǔ)法

for(declaration : container)
{
//循環(huán)體
}

1.1 decalaration

默認(rèn)獲取值

是一個(gè)變量,依次獲取范圍中的每個(gè)元素的,即遍歷過(guò)程中每個(gè)元素將自己拷貝一份給decalaration,適合用于小型元素,例如 int 等,對(duì)于較大較復(fù)雜的對(duì)象,會(huì)有資源開(kāi)銷(xiāo)。
例如:

for(int val:vec)
{
// val 是 vec 中元素的副本
}

引用&

可以通過(guò)引用&獲取范圍中的每個(gè)元素,避免復(fù)制,適用于較大的數(shù)據(jù)類(lèi)型,例如:

for(string& str : vec)
{
// 遍歷過(guò)程中,str 是 vec 中元素的引用
}

自動(dòng)類(lèi)型推導(dǎo)(auto)

通過(guò)auto關(guān)鍵字,讓編譯器自動(dòng)推導(dǎo)元素的類(lèi)型。配合引用&,可以自動(dòng)處理復(fù)雜類(lèi)型的推導(dǎo)。例如:

for(auto& elem: vec)
{
// auto& 推導(dǎo)出 vec 中元素的類(lèi)型,通過(guò)引用獲取元素
}

1.2 container

container,是被遍歷的范圍對(duì)象,必須支持支持begin() 和end()函數(shù),這樣才能讓 for 循環(huán)知道從哪里開(kāi)始和結(jié)束遍歷。常見(jiàn)的范圍對(duì)象有數(shù)組、STL容器、初始化列表,或者返回類(lèi)型為容器的函數(shù)。

數(shù)組

int arr[] = {1,2,3,4,5};
for(int val:arr)
{cout<<val<<" ";
}

STL容器

例如 std::vector、std::list、std::map 等標(biāo)準(zhǔn)容器

#include <iostream>
#include <vector>
using namespace std;int main()
{vector<int>vec = { 1,2,3,4,5 };for (int i : vec){cout << i << " ";}cout << endl;return 0;
}
//輸出1 2 3 4 5

初始化列表

int main()
{for (int i : { 1, 2, 3, 4, 5 }){cout << i << " ";}cout << endl;return 0;
}
//輸出1 2 3 4 5

自定義類(lèi)型

只要自定義類(lèi)型提供了begin()和end()函數(shù),就可以被基于范圍的for循環(huán)遍歷。例如:

class CustomContainer
{
public:int* begin() { return &data[0]; }int* end() { return &data[sizeof(data)/sizeof(data[0])]; }// 計(jì)算的是數(shù)組的長(zhǎng)度(即 10)
private:int data[10] = { 1,2,3,4,5 };// 數(shù)組自動(dòng)填充剩余部分為0
};
int main()
{CustomContainer c;for (auto i : c)cout << i << " ";// 輸出 1 2 3 4 5 0 0 0 0 0return 0;
}

在C++容器(如數(shù)組、vector)等中,end()返回的不是最后一個(gè)元素的迭代器,而是指向最后一個(gè)元素下一個(gè)位置的迭代器,這個(gè)位置不是有效的元素,僅僅用于表達(dá)結(jié)束和終點(diǎn)。

這是C++標(biāo)準(zhǔn)庫(kù)設(shè)計(jì)的常見(jiàn)模式,稱(chēng)為半開(kāi)區(qū)間。范圍的起點(diǎn)是包含的,而終點(diǎn)是不包含的,包含begin()所指向的元素,不包含end()所指向的位置上的元素。

返回容器的函數(shù)

如果一個(gè)函數(shù)返回容器或可迭代對(duì)象,可以直接將函數(shù)調(diào)用作為范圍對(duì)象是用。例如

#include <iostream>
#include <vector>
using namespace std;vector<int> getNumbers()
{return { 1,2,3,4,5,6 };
}
int main()
{	for(int i:getNumbers())cout << i << " ";// 輸出 1 2 3 4 5 6return 0;
}

2. 其他示例

2.1 遍歷數(shù)組

int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };for(int i:arr)cout << i <<" "; //輸出1 2 3 4 5 6 7 8 9 10return 0;
}

2.2 遍歷vector,并修改元素

#include <iostream>
#include <vector>
using namespace std;int main()
{vector<int> vec = { 1,2,3,4,5,6 };for (int& i : vec){i *= 2;}for (int i : vec)cout << i << " "; //輸出2 4 6 8 10 12return 0;
}

2.3 使用常量引用遍歷,防止容器中的值被誤修改

#include <iostream>
#include <vector>
using namespace std;int main()
{vector<string> words = { "Hello","World" };for (const auto& w : words){cout << w << " ";//輸出:Hello World}return 0;
}

3. 小結(jié)

基于范圍的 for 循環(huán)背后的實(shí)現(xiàn)依賴于兩個(gè)函數(shù):
begin():指向容器或數(shù)組的第一個(gè)元素
end():指向容器或數(shù)組的末尾元素(不含)
假設(shè)我們有如下代碼:

#include <iostream>
#include <vector>
#include <string>
using namespace std;int main()
{vector<string> words = { "Hello","World","C++" };for (auto& w : words){cout<<w<<" ";}cout << endl;	return 0;
}

等價(jià)于

#include <iostream>
#include <vector>
#include <string>
using namespace std;int main()
{vector<string> words = { "Hello","World","C++" };for (auto w = words.begin(); w != words.end(); w++){cout << *w << " ";}cout << endl;return 0;
}
http://aloenet.com.cn/news/29086.html

相關(guān)文章:

  • 寧城網(wǎng)站建設(shè)公司百度怎么免費(fèi)推廣
  • 游戲網(wǎng)站開(kāi)發(fā)視頻制作一個(gè)簡(jiǎn)單的網(wǎng)站
  • 公司網(wǎng)站沒(méi)備案最近營(yíng)銷(xiāo)熱點(diǎn)
  • 東莞php網(wǎng)站建設(shè)快速排名seo
  • wordpress 整站帶數(shù)據(jù)互動(dòng)營(yíng)銷(xiāo)的方式有哪些
  • asp做微網(wǎng)站設(shè)計(jì)濟(jì)南網(wǎng)站seo公司
  • 自己做的網(wǎng)站標(biāo)題青島網(wǎng)絡(luò)推廣公司排名
  • 企業(yè)負(fù)責(zé)人電話名錄百度搜索優(yōu)化怎么做
  • 企業(yè)做網(wǎng)站有什么好處壞處百度愛(ài)采購(gòu)優(yōu)化軟件
  • 傳媒公司做網(wǎng)站條件如何讓關(guān)鍵詞排名靠前
  • wordpress數(shù)據(jù)表開(kāi)頭小紅書(shū)seo排名規(guī)則
  • wordpress換域名換服務(wù)器寧波seo在線優(yōu)化
  • 長(zhǎng)沙網(wǎng)站搭建百度引流推廣費(fèi)用多少
  • 網(wǎng)站內(nèi)容建設(shè)ppt目前最新的營(yíng)銷(xiāo)方式有哪些
  • 東昌府網(wǎng)站建設(shè)公司營(yíng)銷(xiāo)對(duì)企業(yè)的重要性
  • 網(wǎng)站開(kāi)發(fā)必用代碼西安百度競(jìng)價(jià)托管代運(yùn)營(yíng)
  • 萊蕪 做網(wǎng)站 公司百度權(quán)重提升
  • 淮南網(wǎng)站建設(shè)好的公司百姓網(wǎng)推廣怎么收費(fèi)標(biāo)準(zhǔn)
  • 微網(wǎng)站入口sem和seo的關(guān)系
  • 旅游網(wǎng)站設(shè)計(jì)說(shuō)明書(shū)網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣方案步驟
  • 做百度翻譯英文網(wǎng)站信息流廣告優(yōu)秀案例
  • 法治政府建設(shè)網(wǎng)站四川seo平臺(tái)
  • 大連做網(wǎng)站建設(shè)電腦編程培訓(xùn)學(xué)校哪家好
  • 濟(jì)南網(wǎng)站建設(shè)報(bào)價(jià)收錄網(wǎng)站排名
  • 新網(wǎng)站 不穩(wěn)定惠州seo代理商
  • 網(wǎng)站系統(tǒng)php源碼河南鄭州網(wǎng)站推廣優(yōu)化
  • 網(wǎng)站建設(shè)排版頁(yè)面網(wǎng)站排名前十
  • 杭州市人民政府網(wǎng)站seo培訓(xùn)學(xué)院
  • 網(wǎng)站突然打不開(kāi)是什么原因網(wǎng)絡(luò)營(yíng)銷(xiāo)策略包括哪些
  • 在線圖片編輯助手隨州seo