我有一个我正在做的作业,它提供了功能大纲。如果找到了,我应该返回找到的物品的位置,否则返回-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();