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

本文介绍了C++中的swap()函数,用于交换变量值,以及reverse()函数,用于反转容器元素顺序,包括它们的用法、模板和适用的容器类型。
摘要由CSDN通过智能技术生成

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

#include <bits/stdc++.h>
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<iostream>
#include<vector>
#include<algorithm>

int main(){
	std::vector<int> 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<class BidirIt>
void reverse(BidirIt first, Bidirit last);

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

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

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

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

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

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


(1) vector<T> a(10); //定义10个元素的向量(T为元素类型名,可以是任何合法的数据类型)
(2)vector<int> a(10,1); //定义10个整型元素的向量,且每个元素的初始化为1
(3)vector<T> a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector<T> a(b.begin(),b.begin+3); //定义a为b中第0个到第2个(共3个)元素
(5)int b[7]={1,2,3,4,5,9,8};        vector<int> 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博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值