在C++中,你可以通过创建一个自定义的比较函数或比较类来定义std::set
的排序规则
方法1:使用比较函数
#include <iostream>
#include <set>
#include <vector>
// 自定义比较函数
bool my_compare(int a, int b) {
return a < b;
}
int main() {
// 使用自定义比较函数创建set
std::set<int, decltype(&my_compare)> my_set(my_compare);
// 向set中添加元素
my_set.insert(5);
my_set.insert(3);
my_set.insert(8);
my_set.insert(1);
// 输出set中的元素(按自定义排序规则)
for (const auto& elem : my_set) {
std::cout << elem << " ";
}
return 0;
}
方法2:使用比较类
#include <iostream>
#include <set>
#include <vector>
// 自定义比较类
struct MyCompare {
bool operator()(int a, int b) const {
return a < b;
}
};
int main() {
// 使用自定义比较类创建set
std::set<int, MyCompare> my_set(MyCompare());
// 向set中添加元素
my_set.insert(5);
my_set.insert(3);
my_set.insert(8);
my_set.insert(1);
// 输出set中的元素(按自定义排序规则)
for (const auto& elem : my_set) {
std::cout << elem << " ";
}
return 0;
}
在这两个示例中,我们都定义了一个自定义排序规则,使得std::set
中的元素按升序排列。你可以根据需要修改比较函数或比较类,以实现不同的排序规则。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1202116.html