Lower_bound stimmt mit falschen Zeichenfolgen überein
etzt bin ich völlig verwirrt. Ich google den ganzen Tag und kann immer noch nicht verstehen, warum dieser Code nicht funktioniert.
Ich habevector
vonstructs
und diesestructs
habenstring
Eigentum. Wenn ich ein neues @ hinzufügen möchstruct
invector
, als erstes muss ich prüfen ob einstruct
mit dem gleichenstring
Eigenschaft ist bereits da. Wenn ja, wird es nicht hinzugefügt.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Try{
string name;
Try( string name) : name ( name ) { }
bool operator < ( const Try & a ) const
{
return name < a . name;
}
};
int main(){
vector<Try> vektor;
Try *n;
vektor . push_back( Try( "Prague" ) );
n = new Try( "Brno" );
vector<Try>::iterator it = lower_bound( vektor . begin(), vektor . end(), n -> name);
if( it == vektor . end() ){
cout << "not included" << endl;
cout << it -> name << endl;
}
else
cout << "included" << endl;
return 0;
}