栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STL标准库排序算法详解(上)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

STL标准库排序算法详解(上)

        本篇博客是本人休息过后,发现自己已经好几天没用动过手写东西了,哈哈哈所以最近可能会进行一段时间的频繁更新,这几天的博客都是干货满满哦!

嘿嘿,小侯不躺平也该醒醒去写一些自己了解的东西,顺便增强一下自己的知识储备了。

好了进入正文,该排序算法有很多内容所以采取了分开写代码来讲解,请仔细看代码段里的内容里面有对排序函数的详细解释。

代码如下:

#include
#include
#include 
#include
using namespace std;


void output(int val)
{
	cout << val << " ";
}
int main()
{
	vector ivc1,ivc2;
	int n1,n2,x;
	cout << "请输入ivc1的容器大小:" << endl;
	cin >> n1;
	for(int i = 0; i < n1; i++)
	{
		cin >> x;
		ivc1.push_back(x);
	}
	cout << "请输入ivc2的容器大小:" << endl;
	cin >> n2;
	for(int i = 0; i < n2; i++)
	{
		cin >> x;
		ivc2.push_back(x);
	}
//	ivc2.resize(n);
//	copy(ivc1.begin(),ivc1.end(),ivc2.begin());
	cout << "ivc1 :" << endl;
	for_each(ivc1.begin(),ivc1.end(),output);
	cout << endl;
	cout << "ivc2 :" << endl;
	for_each(ivc2.begin(),ivc2.end(),output);
	cout << endl <::iterator,vector::iterator> it;
	it = equal_range(ivc1.begin(),ivc1.end(),7);
	cout << *it.first << " " << *it.second;
	cout << endl <());
 	for_each(ivc2.begin(),ivc2.end(),output);
 	cout << endl;
 	cout << "After make_heap(greater()):" << endl;
 	make_heap(ivc2.begin(),ivc2.end(),greater());
 	for_each(ivc2.begin(),ivc2.end(),output);
 	cout << endl;
 	cout << "After push_heap(greater()):" << endl;
 	push_heap(ivc2.begin(),ivc2.end(),greater());
 	for_each(ivc2.begin(),ivc2.end(),output);
 	cout << endl;
 	cout << "After pop_head():" << endl;
 	pop_heap(ivc2.begin(),ivc2.end());
 	for_each(ivc2.begin(),ivc2.end(),output);
 	cout << endl;
 	cout << "After sort_heap():" << endl;
 	sort_heap(ivc2.begin(),ivc2.end());
 	for_each(ivc2.begin(),ivc2.end(),output);
 	cout << endl;
 	cout << endl;
 	
 	
	cout << "After max_element():" << endl;
	int max = max_element(ivc1.begin(),ivc1.end())-ivc1.begin();
	cout << max << endl;
	cout << "After min_element():" << endl;
	int min = min_element(ivc1.begin(),ivc1.end())-ivc1.begin();
	cout << min << endl;
	cout << endl;  	 
	
	
	cout << "After merge():" << endl;
	vector ivc3;
	ivc3.resize(ivc1.size()+ivc2.size()); 
	merge(ivc1.begin(),ivc1.end(),ivc2.begin(),ivc2.end(),ivc3.begin());
	for_each(ivc3.begin(),ivc3.end(),output);
	cout << endl; 
	cout << "内容就到这里结束了!,祝大家学业有成";
	return 0;
}

嘿嘿,请仔细看代码段里的内容哦,干货全部都在代码段里面。

运行后的结果如下:

 

 

好了,本人该去赶着去上思修课了哈哈很急,再见下一篇博客再见。

 大家努力攻克自己的技术难关加油哦,在各自的领域发光发热!!!

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号