STL中的容器主要分为顺序容器和关联容器。其中顺序容器主要有vector, deque和list;关联容器主要有map,set和multimap multiset。关联容器,通过键存储和读取元素。顺序容器,通过元素在容器中的位置顺序存储和读取元素。
指定自定义排序方法或者重载 operator < 操作符等方式来自定义排序规则
指定自定义排序方法或者重载 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;