vector<int>v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
int pos = find(v.begin(),v.end(),4)-v.begin();
Answer : pos = 3
find()将从头到尾搜索并返回索引 有没有办法从特定的索引搜索,比如我想从向量中的索引2到4进行搜索。
答案 0 :(得分:2)
是的,您可以使用添加操作。
vector<int>v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
int pos = find(v.begin()+2,v.begin()+4, 4)-(v.begin()+2);
Answer : pos = 3
答案 1 :(得分:2)
std::find
和std::distance
的使用为您提供了索引:
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
vector<int>v = {1, 2, 3, 4, 5};
auto pos = distance(v.begin(), find(v.begin() + 2, v.end() + 4, 4));
cout << pos;
}
Output:
3