蓝桥杯基础知识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
(2)vector
(3)vector
(4)vector
(5)int b[7]={1,2,3,4,5,9,8}; vector
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博客