我有一个我正在做的作业,它提供了功能大纲。如果找到了,我应该返回找到的物品的位置,否则返回-1。
这是大纲代码:

int linearSearch( const vector<int>& inputVec, int x)  {

我必须用find算法来填充函数我的理解是find返回一个迭代器我只是不知道如何得到它并返回一个整数,即位置或-1。
现在我在里面试这个。
auto it = find(inputVec.begin(), inputVec.end(), x);

我也不知道从那里去哪里。

最佳答案

您可以这样进行手动循环:

for(int i=0;i<inputVec.size();i++) {
    if(inputVec[i]==x) return i;
}
return -1;

或者如果要使用find()函数:
auto it = find(inputVec.begin(), inputVec.end(), x);
if(it==inputVec.end()) return -1;
return it - inputVec.begin();

10-04 14:27