C++ stl排序算法应用

stl排序算法应用

对vector, string, deque, 或 array容器进行全排序,你可选择sort或stable_sort;
使用的list容器,你可以直接使用partition和stable_partition算法,你可以使用list::sort代替sort和stable_sort排序。
带有stable的函数可保证相等元素的原本相对次序在排序后保持不变。
接下来就通过例子说明吧:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <list>
#include<vector>
#include<algorithm>
using namespace std;

class person{
public:
	string name;
	int age;
public:
	person(string na, int ag) :name(na), age(ag)
	{
	}
	void shows()
	{
		cout << name << "  " << age << endl;
	}
};

bool comparemy(const person &p1, const person &p2)
{
	return p1.age < p2.age;
}
void main()
{
	person p1("jack1", 25);
	person p2("jack2", 28);
	person p3("jack3", 22);
	person p4("jack4", 24);
	person p5("jack5", 27);
	person p6("jack6", 26);
	person p7("jack7", 25);
	
//vector
	//list<person> m_vctor{ p1, p2, p3, p4, p5, p6, p7 };
	//sort(m_vctor.begin(), m_vctor.end(), comparemy);
//list
	list<person> m_list{ p1, p2, p3, p4, p5, p6, p7 };
	m_list.sort([](const person &p1, const person &p2){return p1.age < p2.age; });
	//m_list.sort(comparemy); 也可以这样
	for (auto it : m_list)
	{
		it.shows();
	}
	system("pause");
}

结果:
在这里插入图片描述

发布了65 篇原创文章 · 获赞 6 · 访问量 1539

猜你喜欢

转载自blog.csdn.net/FairLikeSnow/article/details/103795568