gpt4 book ai didi

C++:如何检查集合中是否存在具有特定属性的对象

转载 作者:搜寻专家 更新时间:2023-10-31 00:54:07 24 4
gpt4 key购买 nike

我有以下结构:

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

现在我想在一个集合中插入这个结构的对象。我的对象具有相同的 CUid 但(重要!)其他属性(sinksourcevar)可以不同。我想防止在集合中插入具有相同 CUid 的对象。所以我知道的唯一方法是遍历集合并检查 CUid 的每个对象。有没有更好的方法用更少的代码来检查它?

最佳答案

您可以使用自定义比较器来定义对象在集合中的存储顺序。

struct cmp
{
bool operator()(const dependence &a,const dependence &b) const
{
return a.CUid < b.Cuid;
}
};

然后

std::set<dependence,cmp> myset;

现在,如果您尝试插入具有相同 CUid 的对象, 只有第一个实例会进入 myset .

编辑:

另一种方法是重载 <运营商。

bool operator<(const dependence &a,const dependence &b)
{
return (a.CUid<b.CUid);

}

然后

std::set<dependence> myset;

关于C++:如何检查集合中是否存在具有特定属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46276936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com