stl常用算法_排序相关
2017-01-19 13:54
253 查看
传智扫地僧课程学习笔记。
看老师课上示例代码即可,
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:
string m_name;
int m_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);
}
看老师课上示例代码即可,
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:
string m_name;
int m_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);
}
相关文章推荐
- stl常用算法_查找相关
- 常用STL算法3_排序
- STL中排序相关算法选择
- stl常用算法_拷贝和替换相关
- STL常用算法之排序、集合
- 算法学习-常用排序
- 算法学习-常用排序
- C++ STL相关的一些算法
- STL常用算法(转)
- 数组排序的常用算法
- STL的常用算法 .
- 常用算法总结之排序(七)---直接插入排序
- 数组排序的常用算法
- STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。
- [算法]常用排序,查找,树算法集锦
- [算法]常用排序,查找,树算法集锦
- 链表的归并排序:来自STL_ list_ sort 算法
- Dijkstra单源最短路径算法; 优先队列+静态数组邻接表; STL优先队列还是没想明白排序原则;
- STL 常用 算法/函数
- 常用算法总结之排序(一)----写在前面