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öchstructinvector, 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;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage