Lower_bound соответствует неправильным строкам

Теперь я полностью сбит с толку. Я весь день гуглю и до сих пор не могу понять, почему этот код не работает.

я имеюvector изstructs и теstructs иметьstring имущество. Когда я хочу добавить новыйstruct вvector, так как сначала я должен проверить, является лиstruct с тем жеstring собственность уже есть. Если это так, он не будет добавлен.

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

Ответы на вопрос(1)

Ваш ответ на вопрос