蓝桥杯基础知识4 swap()、reverse()

蓝桥杯基础知识4 swap()、reverse()

#include 
using namespace std;

int main(){
	int a = 10,b = 20;
	cout << a <<' '<< b <<'\n';		//10 20
	swap(a,b);
	cout << a <<' '<< b <<'\n';		//20 10
	return 0;
}

C++ 在线工具 | 菜鸟工具 (runoob.com)

swap(T &a, T&b)

swap函数实现原理:将第一个变量的值存储到临时变量中,第二个变量的值赋给第一个变量,

临时变量赋给第一个变量,借用临时变量实现两个值的交换。

swap()可以用于交换任意类型的变量,包括基本类型(如整型、浮点型等)和自定义类型(如结构体、类对象等)。

#include
#include
#include

int main(){
	std::vector vec = {1,2,3,4,5};    //vector 初始化
	//					    begin()	 end()
	for(int num : vec)std::cout << num << " ";
	
	std::cout << std::endl;
	
	std::reverse(vec.begin(),vec.end());   
	
	for(int num : vec)std::cout << num << " ";    //遍历vec
		
	return 0;
}
template
void reverse(BidirIt first, Bidirit last);

reverse()是一个用于反转容器中元素顺序的函数,定义在头文件中。

first:指向容器中要反转的第一个元素的迭代器。

last:指向容器中要反转的最后一个元素的下一个位置的迭代器。

reverse()将 [first, last) 范围内的元素顺序进行反转,将 [fist, last)范围的元素按相反的顺序重新排列,可用于数组、向量、链表等。

reverse() 需要双向迭代器来工作,所以它用于 std::vector、std::deque 和 std::list 之类的容器,

但不能用于 std::set 和 std::map 这样的容器,因为它们的内部是有序的,不能做反转操作。


(1) vector a(10); //定义了10个元素的向量(尖括号中T为元素类型名,可以是任何合法的数据类型)。
(2)vector a(10,1); //定义10个整型元素的向量,且每个元素的初始化为1
(3)vector a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector a(b.begin(),b.begin+3); //定义a为b中第0个到第2个(共3个)元素
(5)int b[7]={1,2,3,4,5,9,8};        vector a(b,b+7); //数组a从数组b中获得初值

reference:

C++ swap函数模板及其用法 (biancheng.net)
C++ reverse()函数用法详解 (biancheng.net)
[详解-vector] C++必知必会 vector常用各种操作解析 - 知乎 (zhihu.com)
C++11 for区间遍历:vector几种遍历方式_c++ for vector-CSDN博客
C++ vector的用法(整理)-CSDN博客
关于几类STL容器的swap复杂度问题 - lyyi2003 - 博客园 (cnblogs.com)
C++ STL库中的reverse()函数理解_vector reverse时间复杂度-CSDN博客

你可能感兴趣的:(蓝桥杯,c++,蓝桥杯)