std::vector如何查找
时间: 2024-01-12 08:03:23 浏览: 130
在std::vector中查找元素可以使用std::find或者std::find_if函数。其中,std::find函数可以直接查找指定元素,而std::find_if函数可以通过自定义的谓词函数来查找符合条件的元素。具体使用方法可以参考以下代码示例:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct stMyTest {
int nID;
int nData;
stMyTest(int id, int data) :nID(id), nData(data) {}
};
struct stFindID {
int nFindID;
stFindID(int findID) :nFindID(findID) {}
bool operator()(const stMyTest&t1) {
return t1.nID == nFindID;
}
};
int main() {
vector<stMyTest> v;
for (int i = 0; i < 100; ++i) {
v.emplace_back(i, i + 1);
}
// 使用std::find查找元素
auto it = std::find(v.begin(), v.end(), stMyTest(50, 51));
if (it != v.end()) {
cout << it->nID << " " << it->nData << endl;
}
// 使用std::find_if查找符合条件的元素
auto it2 = std::find_if(v.begin(), v.end(), stFindID(50));
if (it2 != v.end()) {
cout << it2->nID << " " << it2->nData << endl;
}
return 0;
}
```
阅读全文