Ich möchte nach einem Wert in zwei std::vector
suchen. Wenn es in einem von ihnen gefunden wurde, möchte ich seinen Iterator zurückgeben. Wenn nicht, möchte ich einen Wert zurückgeben, der anzeigt, dass er nicht gefunden wurde.Prüfen, ob der Iterator keinem Element zugewiesen ist, wenn kein spezifischer Container vorhanden ist
In normalen Situation, wo nur eine std::vector
beteiligt ist, würde ich std::vector::end
zurückgeben. Was soll ich in dieser Situation tun?
Normale Situation:
auto find_ten=[](const std::vector<int>& v){
return std::find(v.cbegin(),v.cend(),10);
}
Meine Situation:
auto find_ten=[](const std::vector<int>& v1,const std::vector<int>& v2){
auto it1=std::find(v1.cbegin(),v1.cend(),10);
if(it1==v1.cend()){
auto it2=std::find(v2.cbegin(),v2.cend(),10);
if(it2==v2.cend()){
//What should I return here??
}
return it2;
}
return it1;
}
Ich möchte etwas zurückgeben, die ich überprüfen kann es später zu wissen, dass die Zahl 10
in keiner gefunden wurde von ihnen.
Ein Iterator ist _never_ "null". –
(Obwohl ein einzelner Iterator Ihnen helfen kann, können Sie mit einem erstaunlich wenig tun.) –
@LightnessRacesinOrbit korrigiert –