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

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

相关推荐

  1. 基础知识4 swap()、reverse()

    2024-01-14 02:06:02       67 阅读
  2. 基础知识5 unique()

    2024-01-14 02:06:02       58 阅读
  3. 基础知识7 vector

    2024-01-14 02:06:02       44 阅读
  4. 基础知识8 list

    2024-01-14 02:06:02       55 阅读
  5. 基础知识1 字母大小写转换

    2024-01-14 02:06:02       76 阅读
  6. python组基础知识速学!!!!

    2024-01-14 02:06:02       114 阅读
  7. 从零开始备战(Python组)---基础知识

    2024-01-14 02:06:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-14 02:06:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-14 02:06:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-14 02:06:02       87 阅读
  4. Python语言-面向对象

    2024-01-14 02:06:02       96 阅读

热门阅读

  1. 20. 完整的蒙特卡洛强化学习算法

    2024-01-14 02:06:02       60 阅读
  2. 关于git-lfs删除历史版本

    2024-01-14 02:06:02       54 阅读
  3. 超级计算集群

    2024-01-14 02:06:02       62 阅读
  4. metartc5_jz源码阅读-yang_rtcpush_on_rtcp_ps_feedback

    2024-01-14 02:06:02       65 阅读
  5. VCG 网格面片法向量平滑

    2024-01-14 02:06:02       65 阅读
  6. Git 的基本概念和使用方式

    2024-01-14 02:06:02       51 阅读
  7. Ubuntu下git提示:终止提交因为提交说明为空。

    2024-01-14 02:06:02       71 阅读
  8. 【洛谷】P2709 小B的询问——莫队问题

    2024-01-14 02:06:02       70 阅读
  9. C++系列十六:枚举

    2024-01-14 02:06:02       57 阅读
  10. spring动态控制定时任务

    2024-01-14 02:06:02       66 阅读