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