在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;
}