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