`

C++自定义容器排序规则

 
阅读更多



/*************************************************************************
    > File Name: MyComparator.cpp
    > Author: ma6174
    > Mail: ma6174@163.com 
    > Created Time: 2013年12月 2日 23:22:07
 ************************************************************************/
#include<iostream>
#include<set>
#include<iterator>
using namespace std;

template <class T>
class MyComparator {

  public :

	  enum compare_mode {normal,reverse};

  private:
	  compare_mode mode;
  public:
MyComparator(compare_mode m=normal):mode(m) {


}

bool operator()(const T &t1,const T &t2) {
  return mode==normal ? t1<t2 : t2<t1;

}

};

int main() {

   set<int> s1;

   for(int i=0;i<10;i++) {

	   s1.insert(i);
   }

   copy(s1.begin(),s1.end(),ostream_iterator<int>(cout," "));
   cout<<endl;

   MyComparator<int> com(MyComparator<int>::reverse);
   set<int,MyComparator<int> > s2(com);
   
   for(int i=0;i<10;i++) {

	   s2.insert(i);
   }
    cout<<"==========="<<endl;
   copy(s2.begin(),s2.end(),ostream_iterator<int>(cout," "));
   cout<<endl;


}
分享到:
评论

相关推荐

    C++自定义结构体排序实现

    "C++自定义结构体排序实现" C++中的结构体排序是指对自定义结构体类型的数据进行排序操作。排序是按照某个键值进行的,例如结构体中的某个成员变量。下面我们将介绍两种实现结构体排序的方法。 一、使用重载运算符...

    面向对象程序设计C++自定义类模板

    自定义类模板内容很全,用到了大部分数据结构的知识 具体分为: 1.容器类模板:顺序表、链表、栈、队列、映射表 2.函数模板:冒泡、快速排序、堆排序、顺序查找、二分查找 3.应用:(1)四则表达式的运算(2)图...

    set容器对类进行排序

    当我们需要对自定义类的对象进行排序时,`set`容器可以帮助我们实现这个需求。本文将详细讲解如何利用`set`容器对类进行排序,并探讨相关的关键知识点。 首先,`set`容器内部基于红黑树(Red-Black Tree)数据结构...

    c++实现数组或容器排序

    如果需要自定义排序规则,可以在创建容器时传入比较函数对象。 总的来说,C++提供了丰富的排序功能,无论是在基本数组还是复杂容器中,都可以轻松实现排序操作。在实际编程中,可以根据具体需求选择合适的排序算法...

    STL自定义排序准则

    STL自定义排序准则 STL(Standard Template Library)是C++编程中非常重要的一...STL的排序准则是非常重要的概念,通过使用operator&lt;运算符和自定义排序准则,我们可以实现复杂的排序规则,提高编程的效率和灵活性。

    STL代码大全(容器,链表,栈,算法,排序等)

    STL,全称为Standard Template Library,是C++标准库的核心部分,它提供了一组高效、灵活的编程组件,包括容器、迭代器、算法和函数对象。这个压缩包包含的代码示例涵盖了STL中的关键概念,如链表、容器、映射以及...

    C++对文件排序并输出CSV文件

    3. **排序数据**:使用`std::sort`对容器中的数据进行排序,传入自定义的比较函数或比较函数对象。 4. **写入排序后的数据**:遍历排序后的容器,将每个结构体或类实例的字段写入到输出文件,确保每个字段间以逗号...

    排序问题C++MFC

    总结来说,C++和MFC提供了解决排序问题的强大工具,包括多种内置的排序算法和自定义排序功能。理解和灵活运用这些工具,可以有效地优化代码性能,提高软件质量。在实际项目中,根据数据规模、内存限制以及排序需求,...

    STL中自定义排序的使用

    这篇博客将深入探讨如何在STL中自定义排序规则,以满足特定的排序需求。 首先,`std::sort`函数的原型为: ```cpp template , class Compare&gt; void sort(RandomAccessIterator first, RandomAccessIterator last, ...

    tree(c++ tree容器)

    例如,它可能提供了自定义比较函数的能力,使得排序和查找可以依据特定的规则进行;或者提供了高效的遍历和修改节点的方法。 在标签中,"STL tree"和"标准库"表明这个树容器是面向STL设计的,遵循了STL的设计原则,...

    C++_STL之set容器使用方法

    在C++标准模板库(STL)中,`set`容器是一种非常重要的关联容器,主要用于存储唯一元素,并且这些元素会根据其键值自动排序。`set`内部通常采用红黑树(一种自平衡的二叉查找树)来实现,这使得它在执行插入、删除和...

    C++使用sort函数进行容器排序.docx

    ### C++中使用sort函数进行容器排序 #### 一、sort函数概述 `sort`函数是C++标准模板库(STL)中的一个强大工具,它主要用于对容器中的元素进行排序。`sort`函数的实现基于快速排序算法,具有较高的效率。在实际应用...

    C++_MFC_容器、标准库、模板.

    在这个主题中,我们将深入探讨C++中的容器、标准库以及模板。 首先,让我们来看看C++的容器。容器是STL(Standard Template Library,标准模板库)的一部分,它们提供了数据结构和算法,如数组、列表、向量、映射、...

    C++模板,容器 (STL)用法意义实例

    C++模板和容器是C++标准库中的两个重要组成部分,它们极大地增强了代码的复用性和效率。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 ### 1. C++模板 C++模板是一种泛型编程技术,允许开发者创建可以...

    C++中使用sort对常见容器排序.docx

    ### C++中使用sort对常见容器排序 #### 1. STL 中 sort 的使用方法 `sort()` 是 C++ 标准模板库 (STL) 中一个非常强大的工具,用于对容器或数组中的元素进行排序。它是一个通用的模板函数,位于 `&lt;algorithm&gt;` ...

    c++STL容器讲义与演示

    C++ STL(Standard Template Library,标准模板库)是C++编程中极其重要的一部分,它提供了一组高效、灵活且可重用的容器、迭代器、算法和函数对象。本讲义将深入探讨STL容器,这些容器是STL的核心组成部分,它们在...

    C++实现各种排序算法排序性能的比较,如果有更好的算法,替换相应的算法就可以

    C++作为一种强大的系统级编程语言,提供了多种实现排序的方法,包括内置的库函数和自定义的算法。 描述中提到"这个资源使用比较各种排序算法的性能",这表明项目可能包括了不同的排序算法实现,如冒泡排序、选择...

    C++中各种排序算法大集锦

    C++实现时可以使用优先队列(priority_queue)容器或者自定义堆结构。 8. 合并排序(Merge Sort) 合并排序采用分治策略,将大问题分解为小问题解决,最后合并结果。它将数组分为两半,分别排序,再将两个有序部分...

    c++排序基本程序排序.zip

    通过分析和实践这些排序算法,我们可以提升自己的编程技巧,更好地理解和运用C++的高级特性,比如函数对象、模板元编程以及STL容器和算法。而`c++排序基本程序排序.zip`这个压缩包可能包含了上述排序算法的C++实现...

    C++:快速排序算法

    6. **C++实现**:在C++中,我们可以使用函数指针来实现不同排序算法的通用接口,同时可以利用STL中的`std::vector`容器存储随机生成的数列,并通过`std::generate`函数生成随机数。`std::swap`用于交换元素,`std::...

Global site tag (gtag.js) - Google Analytics