如何将C++ STL关联式容器自定义排序规则改写为长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2245个文字,预计阅读时间需要9分钟。
在讲解如何创建map、multimap、set以及multiset容器时,留下了一个问题:如何自定义关联式容器中的排序规则?实际上,为关联式容器自定义排序规则,可以通过使用`std::multiset`中的`std::less`或`std::greater`等比较函数来实现。以下是一个简单的示例:在`std::multiset`中,使用自定义比较函数来定义排序规则。
前面在讲解如何创建 map、multimap、set 以及 multiset 容器时,遗留了一个问题,即如何自定义关联式容器中的排序规则?
实际上,为关联式容器自定义排序规则的方法,已经在 《STL priority_queue自定义排序方法》一节中做了详细的讲解。换句话说,为 Priority_queue 容器适配器自定义排序规则的方法,同样适用于所有关联式容器。
总的来说,为关联式容器自定义排序规则,有以下 2 种方法。
1) 使用函数对象自定义排序规则
在掌握此方法之前,读者必须对函数对象有基本的了解,可阅读《C++函数对象》一节。
无论关联式容器中存储的是基础类型(如 int、double、float 等)数据,还是自定义的结构体变量或类对象(包括 string 类),都可以使用函数对象的方式为该容器自定义排序规则。
本文共计2245个文字,预计阅读时间需要9分钟。
在讲解如何创建map、multimap、set以及multiset容器时,留下了一个问题:如何自定义关联式容器中的排序规则?实际上,为关联式容器自定义排序规则,可以通过使用`std::multiset`中的`std::less`或`std::greater`等比较函数来实现。以下是一个简单的示例:在`std::multiset`中,使用自定义比较函数来定义排序规则。
前面在讲解如何创建 map、multimap、set 以及 multiset 容器时,遗留了一个问题,即如何自定义关联式容器中的排序规则?
实际上,为关联式容器自定义排序规则的方法,已经在 《STL priority_queue自定义排序方法》一节中做了详细的讲解。换句话说,为 Priority_queue 容器适配器自定义排序规则的方法,同样适用于所有关联式容器。
总的来说,为关联式容器自定义排序规则,有以下 2 种方法。
1) 使用函数对象自定义排序规则
在掌握此方法之前,读者必须对函数对象有基本的了解,可阅读《C++函数对象》一节。
无论关联式容器中存储的是基础类型(如 int、double、float 等)数据,还是自定义的结构体变量或类对象(包括 string 类),都可以使用函数对象的方式为该容器自定义排序规则。

