C++ STL 常用排序算法
C++ STL 常用排序算法
merge()
以下是排序和通用算法:提供元素排序策略
merge: 合并两个有序序列,存放到另一个序列。
例如:
vecIntA,vecIntB,vecIntC是用vector<int>声明的容器,
vecIntA已包含1,3,5,7,9元素,
vecIntB已包含2,4,6,8元素
vecIntC.resize(9); //扩大容量
merge(vecIntA.begin(),vecIntA.end(),vecIntB.begin(),vecIntB.end(),vecIntC.begin());
此时vecIntC就存放了按顺序的1,2,3,4,5,6,7,8,9九个元素
sort()
sort: 以默认升序的方式重新排列指定范围内的元素。若要改排序规则,可以输入比较函数。
//学生类
Class CStudent:
{
public:
CStudent(int iID, string strName)
{
m_iID=iID;
m_strName=strName;
}
public:
int m_iID;
string m_strName;
}
//学号比较函数
bool Compare(const CStudent &stuA,const CStudent &stuB)
{
return (stuA.m_iID<strB.m_iID);
}
void main()
{
vector<CStudent> vecStu;
vecStu.push_back(CStudent(2,"老二"));
vecStu.push_back(CStudent(1,"老大"));
vecStu.push_back(CStudent(3,"老三"));
vecStu.push_back(CStudent(4,"老四"));
sort(vecStu.begin(),vecStu.end(),Compare); // 此时,vecStu容器包含了按顺序的"老大对象","老二对象","老三对象","老四对象"
}
random_shuffle()
random_shuffle: 对指定范围内的元素随机调整次序。
srand(time(0)); //设置随机种子
vector<int> vecInt;
vecInt.push_back(1);
vecInt.push_back(3);
vecInt.push_back(5);
vecInt.push_back(7);
vecInt.push_back(9);
string str("itcastitcast ");
random_shuffle(vecInt.begin(), vecInt.end()); //随机排序,结果比如:9,7,1,5,3
random_shuffle(str.begin(), str.end()); //随机排序,结果比如:" itstcasticat "
reverse() 逆序
vector<int> vecInt;
vecInt.push_back(1);
vecInt.push_back(3);
vecInt.push_back(5);
vecInt.push_back(7);
vecInt.push_back(9);
reverse(vecInt.begin(), vecInt.end()); //{9,7,5,3,1}
- C++ STL中常用的排序算法 20180331 day17
- 浅谈C++ STL常用容器
- C++STL里面7个常用容器的比较
- C++ STL常用函数用法
- 【C++】STL常用容器总结之六:基于deque的顺序容器适配器
- C++:STL常用函数模块总结(vector)
- C++ STL之map常用指令
- C++之STL中常用关联容器使用方法
- C++ STL常用容器基本用法汇总
- C++ stl---string类里常用的成员函数
- C++ STL/ (13) 常用遍历算法
- C++_STL—较为常用的算法
- 【C++】STL常用容器:string类
- C++常用的STL
- C++常用STL汇总(以容器为主)
- C++实现常用排序算法
- C++ STL之排序算法
- C++中STL常用容器的区别
- C++中STL常用容器的优点和缺点
- C++STL 常用 函数 用法