从c++中的特定索引中搜索Vector的元素

Search an element of Vector from specific index in c++

本文关键字:搜索 Vector 元素 索引 c++      更新时间:2023-10-16
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中搜索一样。

是的,您可以使用加法运算。

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

使用std::findstd::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