中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

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

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

文章目錄

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

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

語法糖,“錦上添花”的意思,并不會引入新的功能或者改變語言的核心功能,只是讓代碼更容易理解、編寫或維護。提供簡潔語法,同時不影響性能。

1. 基本語法

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

1.1 decalaration

默認獲取值

是一個變量,依次獲取范圍中的每個元素的,即遍歷過程中每個元素將自己拷貝一份給decalaration,適合用于小型元素,例如 int 等,對于較大較復雜的對象,會有資源開銷。
例如:

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

引用&

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

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

自動類型推導(auto)

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

for(auto& elem: vec)
{
// auto& 推導出 vec 中元素的類型,通過引用獲取元素
}

1.2 container

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

數(shù)組

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

STL容器

例如 std::vector、std::list、std::map 等標準容器

#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

自定義類型

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

class CustomContainer
{
public:int* begin() { return &data[0]; }int* end() { return &data[sizeof(data)/sizeof(data[0])]; }// 計算的是數(shù)組的長度(即 10)
private:int data[10] = { 1,2,3,4,5 };// 數(shù)組自動填充剩余部分為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()返回的不是最后一個元素的迭代器,而是指向最后一個元素下一個位置的迭代器,這個位置不是有效的元素,僅僅用于表達結(jié)束和終點。

這是C++標準庫設(shè)計的常見模式,稱為半開區(qū)間。范圍的起點是包含的,而終點是不包含的,包含begin()所指向的元素,不包含end()所指向的位置上的元素。

返回容器的函數(shù)

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

#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)背后的實現(xiàn)依賴于兩個函數(shù):
begin():指向容器或數(shù)組的第一個元素
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;
}

等價于

#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://www.risenshineclean.com/news/29086.html

相關(guān)文章:

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