STL常用排序算法介绍
来源:互联网 发布:怎么清理手机数据 编辑:程序博客网 时间:2024/05/08 18:23
merge()
以下是排序和通用算法:提供元素排序策略
merge: 合并两个有序序列,存放到另一个序列。
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>using namespace std;void printV(vector<int> &v){for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {cout << *it << ' ';}cout << endl;}void play_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);// 1 2 3 4 5 6}int main(){play_merge();return 0;}
sort()
sort: 以默认升序的方式重新排列指定范围内的元素。若要改排序规则,可以输入比较函数。
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <string>using namespace std;class Student{public:Student(string name, int id) : name(name), id(id) {}friend bool CompareStudent(Student &s1, Student &s2);string name;int id;};bool CompareStudent(Student &s1, Student &s2){return s1.id < s2.id;}void play_sort(){Student s1("lucifer", 1);Student s2("zhang", 2);Student s3("yao", 3);Student s4("qi", 4);vector<Student> v;v.push_back(s4);v.push_back(s2);v.push_back(s1);v.push_back(s3);for (vector<Student>::iterator it = v.begin(); it != v.end(); ++it) {cout << "name: " << it->name << " id: " << it->id << endl;}/*name: qi id: 4name: zhang id: 2name: lucifer id: 1name: yao id: 3*/sort(v.begin(), v.end(), CompareStudent);for (vector<Student>::iterator it = v.begin(); it != v.end(); ++it) {cout << "name: " << it->name << " id: " << it->id << endl;}/*name: lucifer id: 1name: zhang id: 2name: yao id: 3name: qi id: 4*/}int main(){play_sort();return 0;}
random_shuffle()
random_shuffle: 对指定范围内的元素随机调整次序。
srand(time(0)); //设置随机种子
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <string>#include <ctime>using namespace std;void printIntVector(vector<int> &v){for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {cout << *it << ' ';}cout << endl;}void play_random_shuffle(){vector<int> v;v.push_back(1);v.push_back(3);v.push_back(5);v.push_back(7);v.push_back(9);printIntVector(v);// 1 3 5 7 9srand(time(0));random_shuffle(v.begin(), v.end());printIntVector(v);// 1 5 9 3 7}int main(){play_random_shuffle();return 0;}
reverse()
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <string>using namespace std;void printIntVector(vector<int> &v){for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {cout << *it << ' ';}cout << endl;}void play_reverse(){vector<int> v;v.push_back(1);v.push_back(3);v.push_back(5);v.push_back(7);v.push_back(9);printIntVector(v);// 1 3 5 7 9reverse(v.begin(), v.end());printIntVector(v);// 9 7 5 3 1}int main(){play_reverse();return 0;}
0 0
- STL常用排序算法介绍
- STL排序算法介绍
- STL常用排序算法
- STL中排序算法介绍
- STL常用查找算法介绍
- 常用排序算法介绍
- C++——STL排序算法介绍
- STL sort排序算法详细介绍
- C++——STL排序算法介绍
- STL之排序算法SORT 详细介绍
- 整理:STL sort排序算法详细介绍
- STL中的常用算法介绍以及使用
- stl常用算法_排序相关
- 常用STL算法3_排序
- 算法——常用排序算法介绍
- 常用排序算法介绍与实现
- STL算法常用算法
- STL算法 介绍
- autolayout及VFL
- cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
- Android 实现记住用户名和密码的功能
- KDnuggets热门深度学习工具排行:Pylearn2 居首,Caffe第三
- ORACLE密码过期解决方法
- STL常用排序算法介绍
- 细小知识点之Struts2
- iOS核心动画-2
- eclipse中使用git
- redis 编译安装
- Android Please ensure that adb is correctly located at问题解决
- 函数指针强制类型转换
- Android 编程下 Touch 事件的分发和消费机制
- leetoj Longest Substring Without Repeating Characters