在C++中,可以通过重载<运算符来定义自定义数据结构的比较规则,从而使其可以被存储在set中。下面是一个示例,演示如何在自定义数据结构中集成set:
#include <iostream>
#include <set>
// 定义一个自定义的数据结构
struct Point {
int x;
int y;
// 重载<运算符,定义比较规则
bool operator<(const Point& other) const {
return x < other.x || (x == other.x && y < other.y);
}
};
int main() {
// 创建一个set来存储Point结构体
std::set<Point> pointSet;
// 插入一些Point对象
pointSet.insert({1, 2});
pointSet.insert({3, 4});
pointSet.insert({1, 2}); // 重复元素不会被插入
// 遍历set中的元素
for(const auto& point : pointSet) {
std::cout << "(" << point.x << ", " << point.y << ")" << std::endl;
}
return 0;
}
在这个示例中,我们定义了一个Point结构体,其中包含两个整数成员x和y。然后我们重载了<运算符,定义了Point之间的比较规则,此处按照x坐标升序排列,如果x坐标相同则按照y坐标升序排列。
接着我们创建了一个set
最后我们遍历set中的元素,并输出它们的坐标。通过重载<运算符,我们可以在自定义数据结构中集成set,并进行元素的插入、查找、删除等操作。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。