欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++11基于范圍的for循環(huán)代碼示例

 更新時間:2024年06月26日 09:13:22   作者:大柏怎么被偷了  
這篇文章主要給大家介紹了關(guān)于C++11基于范圍的for循環(huán)的相關(guān)資料,范圍for循環(huán)(也稱為C++11的基于范圍的for循環(huán))是一種簡化迭代容器(如數(shù)組、向量、列表等)元素的方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

范圍for的引入

int main(void)
{
	int arr[] = { 1,2,3,4,5,6,7,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < sz; i++)
	{
		cout << arr[i] << " ";
	}
	return 0;
}

在C++98里面遍歷一個數(shù)組,或者說是一個有范圍的集合而言,對應(yīng)程序員來說明循環(huán)的范圍是多余的。

因此C++11中引入了基于范圍的for循環(huán),for循環(huán)后面的括號由冒號“:”分為倆部分:第一部分是范圍內(nèi)用于迭代的變量,第二部分則表示被迭代的范圍。

for(declaration : range)
{}

declaration是變量聲明,用于存儲每次迭代中的元素值,可以是自定義的變量名,也可以是已有的變量名。
range是要遍歷的容器或者迭代的對象。

【注意】與普通循環(huán)類似,可以用continue來結(jié)束本次循環(huán),也可以用break來跳出整個循環(huán)。

int main(void)
{
	int arr[] = { 1,2,3,4,5,6,7,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (auto a : arr)
	{
		cout << a << " ";
	}
	return 0;
}

范圍for的使用條件

1.for循環(huán)迭代的范圍必須是確定的。

(1)對于數(shù)組而言,就是數(shù)組中第一個元素和最后一個元素的范圍

(2)對于類而言,應(yīng)該提供begin和end的方法,begin和end就是for循環(huán)迭代的范圍

2.迭代的對象要實現(xiàn)++和==的操作。

對于數(shù)組而言,就是數(shù)組中第一個元素和最后一個元素的范圍;對于類而言,應(yīng)該提供beginend的方法,beginend就是for循環(huán)迭代的范圍。

注意:以下代碼就有問題,因為for的范圍不確定

void TestFor(int array[])
{
    for(auto& e : array)
        cout<< e <<endl;
}

迭代的對象要實現(xiàn)++和==的操作

關(guān)于這個問題,我將在后續(xù)文章進行講解,敬請期待,現(xiàn)在先了解一下基礎(chǔ)概念

迭代器

迭代器(Iterator)是一種對象,用于遍歷容器中的元素。它提供了一種統(tǒng)一的訪問容器元素的方式,使得用戶可以通過相同的方式訪問不同類型的容器。

迭代器一般具有以下操作:

  • 通過*運算符獲取當前迭代器指向的元素
  • 通過++運算符將迭代器向后移動到下一個元素
  • 通過==運算符判斷兩個迭代器是否相等
  • 通過!=運算符判斷兩個迭代器是否不相等

使用范圍for循環(huán)時,可以使用迭代器來表示集合的起始位置和結(jié)束位置,范圍for循環(huán)會自動遍歷整個集合中的元素,不需要手動控制迭代器的移動和判斷。這樣就避免了使用傳統(tǒng)的for循環(huán)需要手動管理迭代器的復(fù)雜性。

總結(jié)

到此這篇關(guān)于C++11基于范圍的for循環(huán)的文章就介紹到這了,更多相關(guān)C++基于范圍的for循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實現(xiàn) vector 的四則運算

    C++實現(xiàn) vector 的四則運算

    本文給大家介紹的是在C++中實現(xiàn)高效的vector四則運算的方法的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • 深入淺析C語言中堆棧和隊列

    深入淺析C語言中堆棧和隊列

    這篇文章主要介紹了深入淺析C語言中堆棧和隊列的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • C++?qsort函數(shù)排序與冒泡模擬實現(xiàn)流程詳解

    C++?qsort函數(shù)排序與冒泡模擬實現(xiàn)流程詳解

    qsort是一個庫函數(shù),基于快速排序算法實現(xiàn)的一個排序的函數(shù),下面這篇文章主要給大家介紹了關(guān)于C語言qsort()函數(shù)使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • C語言詳細分析講解內(nèi)存管理malloc realloc free calloc函數(shù)的使用

    C語言詳細分析講解內(nèi)存管理malloc realloc free calloc函數(shù)的使用

    C語言內(nèi)存管理相關(guān)的函數(shù)主要有realloc、calloc、malloc、free等,下面這篇文章主要給大家介紹了關(guān)于C語言內(nèi)存管理realloc、calloc、malloc、free函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • C語言代碼實現(xiàn)俄羅斯方塊

    C語言代碼實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細介紹了C語言代碼實現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • C++通用動態(tài)抽象工廠的實現(xiàn)詳解

    C++通用動態(tài)抽象工廠的實現(xiàn)詳解

    在面向?qū)ο蟮木幊讨?一般通過繼承和虛函數(shù)來提供抽象能力,下面這篇文章主要給大家介紹了關(guān)于C++通用動態(tài)抽象工廠的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Qt讀寫XML文件的方法詳解(含源碼+注釋)

    Qt讀寫XML文件的方法詳解(含源碼+注釋)

    XML文件可以用來存儲項目中的數(shù)據(jù),它相當于一個簡單的數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Qt讀寫XML文件(含源碼+注釋)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • 詳解C++中賦值,關(guān)系,函數(shù)調(diào)用運算符重載的實現(xiàn)

    詳解C++中賦值,關(guān)系,函數(shù)調(diào)用運算符重載的實現(xiàn)

    本文主要為大家講解一下三個C++中的運算符重載,分別是賦值運算符重載、關(guān)系運算符重載和函數(shù)調(diào)用運算符重載,感興趣的小伙伴可以跟隨小編一起學(xué)習一下
    2022-06-06
  • MFC程序中使用QT開發(fā)界面的實現(xiàn)步驟

    MFC程序中使用QT開發(fā)界面的實現(xiàn)步驟

    本文主要介紹了MFC程序中使用QT開發(fā)界面的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Qt繪制簡單時鐘

    Qt繪制簡單時鐘

    這篇文章主要為大家詳細介紹了Qt繪制簡單時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評論