リスト内の特定の要素を見つけたい。見つからなかった場合は、特定の値が必要です。たとえば、-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
このあいまいな状況を取り除くにはどうすればよいですか?