在C++中如何自定义set函数的比较规则

   2024-09-30 3790
核心提示:在 C++ 中,要自定义 set 容器的比较规则,需要创建一个自定义的比较类或者结构体,并重载 operator() 函数。然后将这个自定义比

在 C++ 中,要自定义 set 容器的比较规则,需要创建一个自定义的比较类或者结构体,并重载 operator() 函数。然后将这个自定义比较类作为模板参数传递给 std::set。

以下是一个示例,展示了如何自定义 set 容器的比较规则:

#include<iostream>#include <set>// 自定义比较类struct CustomCompare {    bool operator()(const int& a, const int& b) const {        // 自定义比较规则,例如按照降序排列        return a > b;    }};int main() {    // 使用自定义比较类作为 set 的第三个模板参数    std::set<int, CustomCompare> my_set;    // 向 set 中添加元素    my_set.insert(3);    my_set.insert(1);    my_set.insert(4);    my_set.insert(1);    my_set.insert(5);    // 输出 set 中的元素    for (const auto& elem : my_set) {        std::cout<< elem << " ";    }    return 0;}

在这个示例中,我们创建了一个名为 CustomCompare 的自定义比较类,并重载了 operator() 函数。在这个函数中,我们定义了按照降序排列的比较规则。然后我们使用这个自定义比较类作为 std::set 的第三个模板参数,从而实现了自定义比较规则。

运行这段代码,你会看到输出的元素是按照降序排列的:5 4 3 1。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号