Lower_bound que combina cadenas incorrectas

Ahora estoy completamente confundido. Estoy buscando en Google todo el día y todavía no entiendo por qué este código no funciona.

yo tengovector destructs y esosstructs tenerstring propiedad. Cuando quiero agregar un nuevostruct dentrovector, como primero tengo que comprobar si unstruct con el mismostring La propiedad ya está allí. Si es así, no se agregará.

#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;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta