stl常用算法_排序相关

来源:互联网 发布:java自定义枚举类型 编辑:程序博客网 时间:2024/05/20 05:11

传智扫地僧课程学习笔记。


看老师课上示例代码即可,

void main_merge(){vector<int> v1;v1.push_back(1);v1.push_back(3);v1.push_back(5);vector<int> v2;v2.push_back(2);v2.push_back(4);v2.push_back(6);vector<int> v3;v3.resize(v1.size() + v2.size() );merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin() );printV(v3);}class Student{public:Student(string name, int id){m_name = name;m_id = id;}void printT(){cout << "name: " << m_name << " id " << m_id << endl;}public:stringm_name;intm_id;};bool CompareS(Student &s1, Student &s2){return (s1.m_id < s2.m_id);}void main_sort(){Student s1("老大", 1);Student s2("老二", 2);Student s3("老三", 3);Student s4("老四", 4);vector<Student> v1;v1.push_back(s4);v1.push_back(s1);v1.push_back(s3);v1.push_back(s2);for (vector<Student>::iterator it=v1.begin(); it!=v1.end(); it++){it->printT() ;}//sort 根据自定义函数对象 进行自定义数据类型的排序 //替换 算法的统一性 (实现的算法和数据类型的分离) ===>技术手段函数对象sort(v1.begin(), v1.end(), CompareS );for (vector<Student>::iterator it=v1.begin(); it!=v1.end(); it++){it->printT() ;}}void main_random_shuffle(){vector<int> v1;v1.push_back(1);v1.push_back(3);v1.push_back(5);v1.push_back(7);random_shuffle(v1.begin(), v1.end());printV(v1);string str = "abcdefg";random_shuffle(str.begin(), str.end());cout << "str: " << str << endl;}void main_reverse(){vector<int> v1;v1.push_back(1);v1.push_back(3);v1.push_back(5);v1.push_back(7);reverse(v1.begin(), v1.end());printV(v1);}


0 0