C++,stl,常用排序算法,常用拷贝和替换算法

这篇具有很好参考价值的文章主要介绍了C++,stl,常用排序算法,常用拷贝和替换算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.常用排序算法

sort

random_shuffle

merge

reverse

2.常用拷贝和替换算法

copy

replace

replace_if

swap


1.常用排序算法

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

sort

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

默认从小到大排序 

#include<bits/stdc++.h>
using namespace std;

int main()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(9);
	v.push_back(2);
	v.push_back(4);
	
	sort(v.begin(),v.end());
	
	for(auto &ele:v)
	{
		cout << ele << ' ';
	}
	
	sort(v.begin(),v.end(),greater<int>());
	//降序排列
	cout << endl;
	
	for(auto &ele:v)
	{
		cout << ele << ' ';
	}
	
	return 0;
}

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

random_shuffle

使用的时候要加随机数种子

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	srand((unsigned int)time(NULL));
	
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(9);
	v.push_back(2);
	v.push_back(4);
	
	for_each(v.begin(),v.end(),print);
	
	cout << endl;
	
	random_shuffle(v.begin(),v.end());
	for_each(v.begin(),v.end(),print);
	
	return 0;
}

 C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

merge

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	sort(v1.begin(),v1.end());
	
	vector<int> v2;
	for(int i = 2; i <= 6; i += 2)
	{
		v2.push_back(i);
	}
	
	vector<int> v;
	v.resize(v1.size() + v2.size());
	
	//必须v1,v2都是升序或者都是降序
	merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v.begin());
	
	for_each(v.begin(),v.end(),print);
	
	return 0;
}

 C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

reverse

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print);
	cout << endl;
	reverse(v1.begin(),v1.end());
	cout << "反转后" << endl;
	for_each(v1.begin(),v1.end(),print);
	
	return 0;
}

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法 

2.常用拷贝和替换算法

 

copy

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print);
	cout << endl;
	
	vector<int> v2;
	v2.resize(v1.size());
	copy(v1.begin(),v1.end(),v2.begin());
	
	cout << "复制后" << endl;
	for_each(v2.begin(),v2.end(),print);
	
	return 0;
}

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

replace

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print);
	cout << endl;
	
	cout << "替换后" << endl;
	
	replace(v1.begin(),v1.end(),2,1000);
	
	for_each(v1.begin(),v1.end(),print);
	
	return 0;
}

 C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

replace_if

 

#include<bits/stdc++.h>
using namespace std;

class print
{
public:
	void operator()(int v)
	{
		cout << v << ' ';
	}
};

class dayu2
{
public:
	bool operator()(int v)
	{
		return v > 2;
	}
};

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print());
	cout << endl;
	
	cout << "替换后" << endl;
	
	replace_if(v1.begin(),v1.end(),dayu2(),999);
	
	for_each(v1.begin(),v1.end(),print());
	
	return 0;
}

 C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法

swap

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法 交换的容器要是同种类型

#include<bits/stdc++.h>
using namespace std;

class print
{
public:
	void operator()(int v)
	{
		cout << v << ' ';
	}
};

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	vector<int> v2;
	for(int i = 1; i <= 3; i++)
	{
		v2.push_back(i);
	}
	
	cout << "交换前" << endl;
	for_each(v1.begin(),v1.end(),print());
	cout << endl;
	for_each(v2.begin(),v2.end(),print());
	
	cout << endl << "交换后" << endl;
	swap(v1,v2);
	
	for_each(v1.begin(),v1.end(),print());
	cout << endl;
	for_each(v2.begin(),v2.end(),print());
	
	return 0;
}

C++,stl,常用排序算法,常用拷贝和替换算法,C++STL,c++,排序算法,算法,stl,拷贝和替换算法文章来源地址https://www.toymoban.com/news/detail-831247.html

到了这里,关于C++,stl,常用排序算法,常用拷贝和替换算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ 补充之常用拷贝和替换算法

    在C++中,常用的拷贝和替换算法包括以下几种: std::copy:这个算法用于将指定范围内的元素复制到另一个容器中。它需要源容器的起始和结束迭代器以及目标容器的插入位置作为参数。 std::copy_n:与std::copy类似,但是可以指定要复制的元素数量,而不是源容器的结束迭代器。

    2024年03月10日
    浏览(31)
  • STL- 常用算法

    概述 : 算法主要是由头文件 algorithm functional numeric 组成。 algorithm 是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 numeric 体积很小,只包括几个在序列上面进行简单数学运算的模板函数 functional 定义了一些模板类,用以声明函数对象。

    2024年02月09日
    浏览(35)
  • STL常用算法

    目录 1 概述 2 常用遍历算法 2.1 for_each 2.2 transform 3 常用查找算法 3.1 find 3.2 find_if 3.3 adjacent_find 3.4 binary_search 3.5 count 3.6 count_if 4 常用排序算法 4.1 sort 4.2 random_shuffle 4.3 merge 4.4 reverse 5 常用拷贝和替换算法 5.1 copy 5.2 replace 5.3 replace_if 5.4 swap 6 常用算术生成算法 6.1 accumulate 6.2 fil

    2024年02月08日
    浏览(33)
  • STL中的常用算法详解

    STL的算法主要是由下面的头文件组成的。 1.algorithm是所有STL头文件中最大的一个范围涉及到比较、交换、查找、遍历操作、复制、修改等等算法的头文件。 2.numeric体积很小,只包括几个再序列上面进行简单数学运算的模板函数。 3.functional定义了一些模板类,用以声明函数对

    2024年02月15日
    浏览(39)
  • 【C++STL】快速排序算法(sort)的原理与使用

    一、 sort 算法原理 std::sort 是 C++ 标准库中提供的排序算法,它使用的是一种经典的排序算法—— 快速排序 (Quicksort)或者是其变种。 快速排序是一种基于比较的排序算法,通过不断地选择一个基准值(pivot),将待排序序列分割为两个子序列,其中一个子序列的所有元素小

    2024年02月09日
    浏览(43)
  • C++系列二:STL教程-常用算法

    提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 还有一些我在尝试中迷惑不解的,有点玄幻。 排序算法: 合并算法: 查找算法: 筛选分组算法: 其他:

    2024年02月13日
    浏览(46)
  • 第九层(16):STL终章——常用集合算法

    🎉welcome🎉 ✒️博主介绍:一名大一的智能制造专业学生,在学习C/C++的路上会越走越远,后面不定期更新有关C/C++语法,数据结构,算法,Linux,ue5使用,制作游戏的心得,和大家一起共同成长。 ✈️C++专栏:C++爬塔日记 😘博客制作不易,👍点赞+⭐收藏+➕关注 在上一块

    2024年02月02日
    浏览(34)
  • Day 31 C++ STL常用算法(下)

    copy——容器内指定范围的元素拷贝到另一容器中 函数原型 copy(iterator beg, iterator end, iterator dest); // 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置 // beg 开始迭代器 // end 结束迭代器 // dest 目标起始迭代器 注意——利用copy算法在拷贝时,目标容器要提前

    2024年02月12日
    浏览(38)
  • 【C++】STL 算法 - 排序算法 ( 合并排序算法 - merge 函数 | 随机排序算法 - random_shuffle 函数 | 反转序列算法 - reverse 函数 )

    在 C++ 语言 的 标准模板库 ( STL , STL Standard Template Library ) 中 , 提供了 merge 合并排序算法函数 用于 将 两个已排序好的容器 合并成一个新的已排序的容器 ; merge 合并排序算法 函数原型 如下 : 参数解析 : InputIterator1 first1 参数 : 有序 输入 容器 1 的 迭代器范围 的 起始迭代器 (

    2024年01月18日
    浏览(48)
  • 【C++进阶(三)】STL大法--vector迭代器失效&深浅拷贝问题剖析

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C++从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C++   🔝🔝 在阅读本篇文章前,一定要先看前集: vector深度剖析(上) 本章重点: 本章会重点讲解vector迭代器失效问题 以及vector中的深浅拷贝问题 并且简

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包