Ich habe die folgende Struktur:C++: Wie um zu überprüfen, dass ein Objekt mit einer bestimmten Eigenschaft besteht in einem Satz
struct dependence {
dependence() {}
dependence(string CUid, LID sink, LID source, std::string var)
: CUid(CUid), sink(sink), source(source), var(var) {}
string CUid;
LID sink = 0;
LID source = 0;
std::string var;
};
Jetzt mag ich Objekte dieser Struktur in einem Satz einzufügen. Ich habe Objekte mit der gleichen CUid
aber (wichtig!) Die anderen Eigenschaften (sink
, source
, var
) können abweichen. Ich möchte verhindern, dass Objekte mit demselben CUid
in das Set eingefügt werden. Der einzige Weg, den ich kenne, besteht darin, durch die Menge zu iterieren und jedes Objekt der CUid
zu überprüfen. Gibt es einen besseren Weg mit weniger Code, um das zu überprüfen?
einen benutzerdefinierten Komparator Verwenden Sie für die [ 'std :: Set'] (http://en.cppreference.com/w/cpp/container/set), der prüft, die 'CUid'? –
Definieren Sie einen benutzerdefinierten Vergleicher (oder überschreiben Sie möglicherweise den Operator '<' Ihrer 'struct'), die nur die' CUid' im Vergleich verwendet. Beispiel [hier] (https://stackoverflow.com/questions/16894700/c-custom-compare-function-for-stdsort). – hnefatl