检查c ++结构是否在一个集合中

时间:2018-02-05 17:16:23

标签: c++

我有一个以下列方式声明的数据结构

struct foo{
int first;
int second;
};

然后我将类型foo的元素添加到集合中。

过了一会儿,我会检查我的foo myfoo是否在集合中。我的问题是这是怎么做到的?目前我正在尝试

myset.count(myfoo) 

然而,编译器告诉我,我需要定义'<'操作员,我不确定如何或为什么需要这样做。为什么我知道只做一个

inline bool operator==定义它需要什么'<'为?

1 个答案:

答案 0 :(得分:2)

std::set订购的容器。您必须提供元素的排序。默认情况下,std::set<T>将使用bool operator< (T, T)(通过std::less<T>),但任何满足Compare的类型都是允许的。

您的结构与std::pair<int, int>具有相同的数据成员,但缺少为pair定义的所有操作。您可以添加所需的操作,也可以使用pair