常用STL算法3_排序
来源:互联网 发布:java 判断字符串相等 编辑:程序博客网 时间:2024/05/20 03:40
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <vector>#include <set>#include <list>#include <algorithm>#include <functional>#include <string>#include <iterator> //输出流#include <time.h>using namespace std;template <typename T>void printElem(T &t){ T::iterator it; for (it = t.begin(); it != t.end(); it++) { cout<<*it<<" "; } cout<<endl;}void main081_merge(){ vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); vecIntA.push_back(5); vector<int> vecIntB; vecIntB.push_back(2); vecIntB.push_back(4); vecIntB.push_back(6); vecIntB.push_back(8); vector<int> vecIntC; vecIntC.resize(vecIntA.size()+vecIntB.size()); /* _OutIt merge(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest) { // copy merging ranges, both using operator< _DEBUG_ORDER(_First1, _Last1); _DEBUG_ORDER(_First2, _Last2); _DEBUG_POINTER(_Dest); return (_Merge1(_Unchecked(_First1), _Unchecked(_Last1), _Unchecked(_First2), _Unchecked(_Last2), _Dest, _Is_checked(_Dest))); } */ merge(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin()); printElem(vecIntC);}//学生类class CStudent{public: CStudent(int iID, string strName) { m_iID=iID; m_strName=strName; }public: void printElem() { cout<<"Name:"<<m_strName<<" ID:"<<m_iID; }public: int m_iID; string m_strName;};//学号比较函数bool Compare(const CStudent &stuA,const CStudent &stuB){ return (stuA.m_iID<stuB.m_iID);}void main082_sort(){ vector<CStudent> vecStu; vecStu.push_back(CStudent(2,"老二")); vecStu.push_back(CStudent(1,"老大")); vecStu.push_back(CStudent(3,"老三")); vecStu.push_back(CStudent(4,"老四")); /* void sort(_RanIt _First, _RanIt _Last, _Pr _Pred) { // order [_First, _Last), using _Pred _DEBUG_RANGE(_First, _Last); _DEBUG_POINTER(_Pred); _Sort(_Unchecked(_First), _Unchecked(_Last), _Last - _First, _Pred); } */ sort(vecStu.begin(),vecStu.end(),Compare); for (vector<CStudent>::iterator it = vecStu.begin(); it != vecStu.end(); it++) { it->printElem(); cout<<endl; }}//random_shuffle: 对指定范围内的元素随机调整次序。void main083_random_shuffle(){ srand((unsigned int)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); /* void random_shuffle(_RanIt _First, _RanIt _Last) { // shuffle [_First, _Last) using rand() _Rand_urng_from_func _Func; _STD shuffle(_First, _Last, _Func); } */ random_shuffle(vecInt.begin(), vecInt.end()); //随机排序,结果比如:9,7,1,5,3 printElem(vecInt); string str("itcastitcast"); random_shuffle(str.begin(), str.end()); //随机排序,结果比如:" itstcasticat " cout<<str<<endl;}void main084_reverse(){ vector<int> vecInt; vecInt.push_back(1); vecInt.push_back(3); vecInt.push_back(5); vecInt.push_back(7); vecInt.push_back(9); /* void reverse(_BidIt _First, _BidIt _Last) { // reverse elements in [_First, _Last) _DEBUG_RANGE(_First, _Last); _Reverse(_Unchecked(_First), _Unchecked(_Last), _Iter_cat(_First)); } */ reverse(vecInt.begin(), vecInt.end()); //{9,7,5,3,1} printElem(vecInt);}int main(){ //main081_merge(); //main082_sort(); //main083_random_shuffle(); main084_reverse(); cout<<"\nhello"<<endl; system("pause"); return 0;}
0 0
- 常用STL算法3_排序
- stl常用算法_排序相关
- STL常用排序算法
- STL常用排序算法介绍
- stl常用算法_算法和生成
- stl常用算法_查找相关
- stl常用算法_集合运算
- 常用STL算法1_遍历
- 常用STL算法2_查找
- 常用STL算法6_集合
- STL常用算法3
- 常用算法_数组排序Test1
- stl常用算法_拷贝和替换相关
- 常用STL算法4_拷贝和替换
- 常用STL算法5_算术和生成
- STL算法常用算法
- stl的string的典型操作_初始化_遍历_连接_和字符指针转化_查找替换_删除_插入_常用算法
- 排序算法3_希尔排序
- 浅谈微信smali注入
- sqlite 数据类型
- Less -8
- 【IMWeb训练营作业】- 作业3:仿readhub.me
- 软件磁盘阵列的自动挂载及关闭删除
- 常用STL算法3_排序
- DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解
- DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
- 常用STL算法4_拷贝和替换
- 模型选择与特征选择
- DeepLearning tutorial(6)易用的深度学习框架Keras简介
- X
- LINUX PHP环境安装
- 常用STL算法5_算术和生成