C++ 容器使用自定义排序逻辑对中英文进行排序
2015-11-27 21:12
344 查看
STL中的容器主要分为顺序容器和关联容器。其中顺序容器主要有vector, deque和list;关联容器主要有map,set和multimap multiset。关联容器,通过键存储和读取元素。顺序容器,通过元素在容器中的位置顺序存储和读取元素。
指定自定义排序方法或者重载 operator < 操作符等方式来自定义排序规则
对于顺序容器通过调用std::sort函数进行排序,以类对象的方式传递自定义的排序逻辑,如下:
// 调用方式
std::vector<CString> vectData;
std::sort(vectData.begin(),vectData.end(),CompareASC());
对于关联容器,本身按照键进行排序,定义容器时传递自定义的排序逻辑,如下:
std::map<CString,CString,CompareASC> mapData;
指定自定义排序方法或者重载 operator < 操作符等方式来自定义排序规则
对于顺序容器通过调用std::sort函数进行排序,以类对象的方式传递自定义的排序逻辑,如下:
class CompareASC { public: CompareASC() { setlocale(LC_ALL,"Chinese-simplified"); } bool operator ()(const CString& i_stFir, const CString& i_stSec) { USES_CONVERSION; int nResult = strcoll(T2A(sPre), T2A(sLat)); return nResult < 0 ? true : false; } };
// 调用方式
std::vector<CString> vectData;
std::sort(vectData.begin(),vectData.end(),CompareASC());
对于关联容器,本身按照键进行排序,定义容器时传递自定义的排序逻辑,如下:
std::map<CString,CString,CompareASC> mapData;
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性
- C++ Custom Control控件向父窗体发送对应的消息