Ich habe folgende Struktur,C++ upper_bound auf struct Vektor mit Operator ==
struct cube
{
int index l , b , h;
bool operator<(const cube & c2) const
{
if (l == c2.l && b == c2.b && h == c2.h)
return index < c2.index;
if (l == c2.l && b == c2.b)
return h < c2.h;
if (l == c2.l)
return b < c2.b;
return l < c2.l;
}
bool operator==(const cube c2)
{
return index != c2.index && l == c2.l && b == c2.b;
}
};
Jetzt möchte ich auf Vektor dieser Struktur anzuwenden upper_bound gemäß Bedingung Operator ==.
Allerdings ist es immer noch mir diese Iteratoren zurückkehrt, wo Index gleich sind
int pos2 = upper_bound(v.begin(),v.end(),v[i]) - v.begin();
dh v [i] .index gleich v [pos2] .index
'uppoer_bound' beiseite' index! = C2.index' - bedeutet das, dass Strukturen gleich sind, wenn ihre Indizes unterschiedlich sind? – krzaq
Nein, ich benutze nur '==' für obere_Befehl, es gibt keine andere Verwendung von '== Operator in meinem Code –
Aber' Obere_Beitrag 'verwendet' Operator <', nicht' == '... – krzaq