在数组搜索上返回迭代器索引

时间:2016-02-07 20:32:24

标签: c++ arrays iterator

我想搜索一个特定的数字,并有一个迭代器跟踪正在测试的数组元素。如果找到该数字,我想返回找到该数字的数组的索引。这就是我到目前为止所拥有的:

    vector<int>::iterator iterator;
    find(vector.begin(),vector.end(), num);

    if(//the number is found in the search)
    {
       return //where the number is found
    }

我不太确定如何将迭代器与被测数组的元素同步。如果可能的话,我将不胜感激为解决这个问题提供帮助。

1 个答案:

答案 0 :(得分:2)

这应该做你想要的:

std::vector<int> v = {500, 600, 700};
auto it = std::find(v.begin(),v.end(), 600);
std::size_t pos = it - v.begin(); //found(iterator) - begin(iterator)

// of course first you should check if (it != v.end())