STL——常用排序算法
创始人
2024-12-17 12:06:36

 1.sort()

 

void MyPrint(int val) { 	cout << val << " "; } void test01() { 	vector v1; 	v1.push_back(10); 	v1.push_back(20); 	v1.push_back(40); 	v1.push_back(30); 	v1.push_back(20); 	v1.push_back(40); 	v1.push_back(50); 	sort(v1.begin(), v1.end(), greater());//用内建函数模板实现降序 	for_each(v1.begin(), v1.end(), MyPrint); 	cout << endl; }

2.random_shuffle()//随机打乱顺序

void MyPrint(int val) { 	cout << val << " "; } void test01() { 	vector v1; 	srand((unsigned int)time(NULL));//随机数种子 	for (int i = 0; i < 10; i++) 	{ 		v1.push_back(i); 	} 	for_each(v1.begin(), v1.end(), MyPrint); 	cout << endl; 	cout << "随机打乱顺序后" << endl; 	random_shuffle(v1.begin(), v1.end());//随机打乱顺序 	for_each(v1.begin(), v1.end(), MyPrint); 	cout << endl; }

 3.merge()//归并

 

void MyPrint(int val) { 	cout << val << " "; } void test01() { 	vector v1; 	vector v2; 	for (int i = 0; i < 10; i++) 	{ 		v1.push_back(i); 		v2.push_back(i + 1); 	} 	vector v3; 	v3.resize(v1.size() + v2.size());//归并前必须先开辟空间 	merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());//必须是有序且升序 	for_each(v3.begin(), v3.end(), MyPrint); 	cout << endl; }

4.reverse()//反转

void MyPrint(int val) { 	cout << val << " "; } void test01() { 	vector v1; 	for (int i = 0; i < 10; i++) 	{ 		v1.push_back(i); 	} 	cout << "反转前:" << endl; 	for_each(v1.begin(), v1.end(), MyPrint); 	cout << endl; 	reverse(v1.begin(), v1.end());//实现反转 	cout << "反转后:" << endl; 	for_each(v1.begin(), v1.end(), MyPrint); 	cout << endl; }

相关内容

热门资讯

虎牙申请动态封面生成方法专利,... 国家知识产权局信息显示,广州虎牙科技有限公司申请一项名为“动态封面生成方法、装置、电子设备及存储介质...
这家意大利公司想让机械臂飞上太... 3D 打印是什么?你的直觉告诉你,是一台不足鞋盒大小的设备,吐出细如发丝的塑料,耗费数小时,堆叠成一...
友邦吊顶获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示友邦吊顶(002718)新获得一项实用新型专利授权,专利名为“...
中国电信词元套餐落地 迅策受益... 本报讯 (记者李春莲)5月17日,中国电信集团有限公司(以下简称“中国电信”)正式推出全国试商用词元...
国内首次!128通道全植入式脑... 今天,我国正式启动首个128通道全植入式脑机接口系统多中心临床试验,这项试验由首都医科大学附属北京天...