使用的迭代器在容器和算法中交互

在vector中查找元素及其位置
該程序是使用STL順序容器std::vector(類似動態數組)來存儲一些整數,在使用std::find算法在集合中查找該整數。

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> vecIntegerArray;//聲明一個整形的動態數組
    //向數組中添加整數,用push_back向動態數組中添加數據
    vecIntegerArray.push_back(50);
    vecIntegerArray.push_back(2991);
    vecIntegerArray.push_back(24);
    vecIntegerArray.push_back(9999);

    cout << "The contents of the vector are: " << endl;
    //iterator迭代器,聲明瞭一個迭代器對象iArrayWalker,並將其初始化只想容器開頭,即vector的成員函數begin()的返回值。
    vector<int>::iterator iArrayWalker = vecIntegerArray.begin();
  //auto iArrayWalker = vecIntegerArray.begin();可以使用關鍵字auto,讓編譯器確定類型
    while (iArrayWalker != vecIntegerArray.end()) {
        cout << *iArrayWalker << endl;//打印動態數組中的值
        ++iArrayWalker;//增加這個迭代器指向下一個元素
    }
    //使用find在vector中查找值
    vector<int>::iterator iElement = find(vecIntegerArray.begin(), vecIntegerArray.end(), 2991);
    if (iElement != vecIntegerArray.end()) {
        int Position = distance(vecIntegerArray.begin(), iElement);//用distance查找元素所處位置的偏移量
        cout << "value: " << *iElement << endl;
        cout << "found in the vector at position:" << Position << endl;
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章