/*************************************************************************
> 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++中的结构体排序是指对自定义结构体类型的数据进行排序操作。排序是按照某个键值进行的,例如结构体中的某个成员变量。下面我们将介绍两种实现结构体排序的方法。 一、使用重载运算符...
自定义类模板内容很全,用到了大部分数据结构的知识 具体分为: 1.容器类模板:顺序表、链表、栈、队列、映射表 2.函数模板:冒泡、快速排序、堆排序、顺序查找、二分查找 3.应用:(1)四则表达式的运算(2)图...
当我们需要对自定义类的对象进行排序时,`set`容器可以帮助我们实现这个需求。本文将详细讲解如何利用`set`容器对类进行排序,并探讨相关的关键知识点。 首先,`set`容器内部基于红黑树(Red-Black Tree)数据结构...
如果需要自定义排序规则,可以在创建容器时传入比较函数对象。 总的来说,C++提供了丰富的排序功能,无论是在基本数组还是复杂容器中,都可以轻松实现排序操作。在实际编程中,可以根据具体需求选择合适的排序算法...
STL自定义排序准则 STL(Standard Template Library)是C++编程中非常重要的一...STL的排序准则是非常重要的概念,通过使用operator<运算符和自定义排序准则,我们可以实现复杂的排序规则,提高编程的效率和灵活性。
STL,全称为Standard Template Library,是C++标准库的核心部分,它提供了一组高效、灵活的编程组件,包括容器、迭代器、算法和函数对象。这个压缩包包含的代码示例涵盖了STL中的关键概念,如链表、容器、映射以及...
3. **排序数据**:使用`std::sort`对容器中的数据进行排序,传入自定义的比较函数或比较函数对象。 4. **写入排序后的数据**:遍历排序后的容器,将每个结构体或类实例的字段写入到输出文件,确保每个字段间以逗号...
总结来说,C++和MFC提供了解决排序问题的强大工具,包括多种内置的排序算法和自定义排序功能。理解和灵活运用这些工具,可以有效地优化代码性能,提高软件质量。在实际项目中,根据数据规模、内存限制以及排序需求,...
这篇博客将深入探讨如何在STL中自定义排序规则,以满足特定的排序需求。 首先,`std::sort`函数的原型为: ```cpp template , class Compare> void sort(RandomAccessIterator first, RandomAccessIterator last, ...
例如,它可能提供了自定义比较函数的能力,使得排序和查找可以依据特定的规则进行;或者提供了高效的遍历和修改节点的方法。 在标签中,"STL tree"和"标准库"表明这个树容器是面向STL设计的,遵循了STL的设计原则,...
在C++标准模板库(STL)中,`set`容器是一种非常重要的关联容器,主要用于存储唯一元素,并且这些元素会根据其键值自动排序。`set`内部通常采用红黑树(一种自平衡的二叉查找树)来实现,这使得它在执行插入、删除和...
### C++中使用sort函数进行容器排序 #### 一、sort函数概述 `sort`函数是C++标准模板库(STL)中的一个强大工具,它主要用于对容器中的元素进行排序。`sort`函数的实现基于快速排序算法,具有较高的效率。在实际应用...
在这个主题中,我们将深入探讨C++中的容器、标准库以及模板。 首先,让我们来看看C++的容器。容器是STL(Standard Template Library,标准模板库)的一部分,它们提供了数据结构和算法,如数组、列表、向量、映射、...
C++模板和容器是C++标准库中的两个重要组成部分,它们极大地增强了代码的复用性和效率。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 ### 1. C++模板 C++模板是一种泛型编程技术,允许开发者创建可以...
### C++中使用sort对常见容器排序 #### 1. STL 中 sort 的使用方法 `sort()` 是 C++ 标准模板库 (STL) 中一个非常强大的工具,用于对容器或数组中的元素进行排序。它是一个通用的模板函数,位于 `<algorithm>` ...
C++ STL(Standard Template Library,标准模板库)是C++编程中极其重要的一部分,它提供了一组高效、灵活且可重用的容器、迭代器、算法和函数对象。本讲义将深入探讨STL容器,这些容器是STL的核心组成部分,它们在...
C++作为一种强大的系统级编程语言,提供了多种实现排序的方法,包括内置的库函数和自定义的算法。 描述中提到"这个资源使用比较各种排序算法的性能",这表明项目可能包括了不同的排序算法实现,如冒泡排序、选择...
C++实现时可以使用优先队列(priority_queue)容器或者自定义堆结构。 8. 合并排序(Merge Sort) 合并排序采用分治策略,将大问题分解为小问题解决,最后合并结果。它将数组分为两半,分别排序,再将两个有序部分...
通过分析和实践这些排序算法,我们可以提升自己的编程技巧,更好地理解和运用C++的高级特性,比如函数对象、模板元编程以及STL容器和算法。而`c++排序基本程序排序.zip`这个压缩包可能包含了上述排序算法的C++实现...
6. **C++实现**:在C++中,我们可以使用函数指针来实现不同排序算法的通用接口,同时可以利用STL中的`std::vector`容器存储随机生成的数列,并通过`std::generate`函数生成随机数。`std::swap`用于交换元素,`std::...