je la structure suivante:C++: Comment vérifier qu'un objet avec une propriété spécifique existe dans un ensemble
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;
};
Maintenant, je veux insérer des objets de cette structure dans un ensemble. J'ai des objets avec le même CUid
mais (important!) Les autres propriétés (sink
, source
, var
) peuvent différer. Je veux empêcher d'insérer des objets avec le même CUid
dans l'ensemble. Donc, la seule façon que je sais, est de parcourir l'ensemble et vérifier chaque objet de la CUid
. Y at-il un meilleur moyen avec moins de code pour vérifier cela?
Utilisez un comparateur personnalisé pour le (http://en.cppreference.com/w/cpp/container/set) [ 'std :: set'] qui vérifie le 'CUid'? –
Définir un comparateur personnalisé (ou peut-être remplacer l'opérateur '<' de votre 'struct') qui utilise seulement le' CUid' dans la comparaison. Exemple [ici] (https://stackoverflow.com/questions/16894700/c-custom-compare-function-for-stdsort). – hnefatl