我想在列表中查找特定元素。如果没有找到我想要一个特定的值,比如返回 -1。如何为此使用 std::find() ?
我在这里读到find() 将迭代器返回到范围 [first,last) 中比较等于 val 的第一个元素。如果没有找到这样的元素,则函数最后返回。
但这导致了一个模棱两可的情况:
例如:
如果列表是
0 -> 1 -> 2 -> 3
当我使用
vector<int> v(4);
v.push_back(0);
v.push_back(1);
v.push_back(2);
v.push_back(3);
vector<int>::iterator i;
i = find(v.begin(), v.end(), 4);
//Unsuccessful find, so I want a value, say -1.
cout<<*i<<endl; //this prints zero during an unsuccessful search
i = find(v.begin(), v.end(), 0);
cout<<*i<<endl; //this too prints zero which is ambiguous
//because zero was already in my list
如何摆脱这种模棱两可的局面?