本文介绍: reverse()将 [first, last) 范围内的元素顺序进行反转,将 [fist, last)范围的元素按相反的顺序重新排列,可用于数组、向量、链表等。reverse() 需要双向迭代器来工作,所以它用于 std::vector、std::deque 和 std::list 之类的容器,//定义了10个元素的向量(尖括号中T为元素类型名,可以是任何合法的数据类型)。但不能用于 std::set 和 std::map 这样的容器,因为它们的内部是有序的,不能做反转操作。

蓝桥杯基础知识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博客

原文地址:https://blog.csdn.net/F87523399332578_/article/details/135531441

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_56908.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注