に存在することを確認するために私は次の構造を有する:C++:どのように特定のプロパティを持つオブジェクトがセット
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;
};
は今、私はセットでは、この構造のオブジェクトを挿入します。他のプロパティ(sink
、source
、var
)が異なる場合がありますが、同じ(CUid
)のオブジェクトを持っていますが(重要!)私は同じCUid
のオブジェクトをセットに挿入しないようにしたい。だから私が知っている唯一の方法は、セットを反復し、CUid
の各オブジェクトをチェックすることです。それをチェックするコードが少なくて済むように、より良い方法がありますか?
[ 'のstd :: set'(http://en.cppreference.com/w/cpp/container/set)をチェックするためのカスタムコンパレータを使用'CUid'? –
比較で 'CUid'だけを使用するカスタムコンパレータを定義します(または' struct'の '<'演算子をオーバーライドするかもしれません)。例[ここ](https://stackoverflow.com/questions/16894700/c-custom-compare-function-for-stdsort) – hnefatl