C++将项目添加到集合中
C++ adding items to a set
我是 c++ 的新手,在将项目添加到集合时遇到问题,似乎只添加了第一项。我怀疑这与我的比较功能有关。
主要
set<obj> objs;
objs.insert(obj1);
objs.insert(obj2);
objs.insert(obj3);
cout << objs.size() << endl; //Outputs 1
for (Obj const& obj: objs)
{
obj.display();
}
我的比较
bool operator<(const obj& Left, const obj& Right)
{
if (Left.getID() == Right.getID())
{
return true;
}
return false;
}
>std::set
需要严格的弱排序。(这告诉std::set
哪个元素先出现)。 ==
不符合该要求,是的,您怀疑是对的。(a==b
等同于b==a
,但a comes before b
表示b comes AFTER a
)
return Left.getID() < Right.getID();
是非常明显的解决方法。
改编自斯拉瓦的评论
相关文章:
- 将集合的随机元素添加到列表中,然后将其从原始集合中移除
- 将字符串集合中的元素添加到字符串集合的向量中
- 如何将不同的对添加到集合中?
- 如何添加到已存储在集合中的集合
- 嗨,我正在尝试将集合的特定节点添加到列表中,该列表位于哈希表中
- C++将项目添加到集合中
- C++:每当将元素添加到集合中时,如何调用函数
- 将向量的元素添加到无序集合中
- 无法将对象上的指针添加到集合
- 在运行时向对象添加函数集合
- 指针集合和添加对象
- 如何检索添加到由其超类对象组成的集合中的派生对象
- 将不可比较的对象添加到集合中
- 在集合之间交换(删除/添加)
- C++:为什么返回false的集合顺序的函子只允许向集合中添加一个元素
- 使用MSXML 6.0向SAXXMLReader60实例添加模式集合
- 添加c++对象到Objective C集合(NSSet)的麻烦
- 在C++中添加到集合之前或之后
- 如何在c++中为自己的集合类添加foreach迭代支持?
- 在c++中添加到集合中