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

来源:互联网 发布:pptv聚力网络电视下载 编辑:程序博客网 时间:2024/06/03 15:30

在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;}
0 0
原创粉丝点击