std::swap函数用于交换两个元素, 其中std::vector::swap函数可以交换两个不同向量容器的所有元素。
以下是std::swap和std::vector::swap之间的一些主要关键区别,
std::swap | std::vector::swap |
---|---|
std::swap()是C++ STL中的内置函数, 它交换作为参数传递给它的任何两个变量的值。 | std::vector::swap()函数用于将一个向量的全部内容与相同类型和大小的另一个向量交换。 |
比较而言, std::swap()比std::vector::swap()函数要慢。 | 比较而言, std::vector::swap()比std::swap()函数要快。 |
如果std::swap()函数用于交换两个向量, 则将花费O(n)的时间, 因为它将一个向量交换两个向量的元素。 | std::vector::swap函数比普通的swap函数要快, 因为它交换两个向量的地址(即容器交换对其数据的引用), 而不是像在固定时间O中一一交换每个元素( 1)。 |
// CPP program to illustrate swapping
// of two vectors using std::swap()#include<
bits/stdc++.h>
using namespace std;
int main()
{
vector<
int >
v1 = {1, 2, 3};
vector<
int >
v2 = {4, 5, 6};
// swapping the above two vectors
// by traversing and swapping each element
for ( int i=0;
i<
3;
i++)
{
swap(v1[i], v2[i]);
}// print vector v1
cout<
<
"Vector v1 = " ;
for ( int i=0;
i<
3;
i++)
{
cout<
<
v1[i]<
<
" " ;
}// print vector v2
cout<
<
"\nVector v2 = " ;
for ( int i=0;
i<
3;
i++)
{
cout<
<
v2[i]<
<
" " ;
}return 0;
}
输出如下:
Vector v1 = 4 5 6
Vector v2 = 1 2 3
程序2:说明使用std::vector::swap()交换两个向量。
// CPP program to illustrate swapping
// of two vectors using std::vector::swap()#include<
bits/stdc++.h>
using namespace std;
int main()
{
vector<
int >
v1 = {1, 2, 3};
vector<
int >
v2 = {4, 5, 6};
// swapping the above two vectors
// using std::vector::swap
v1.swap(v2);
// print vector v1
cout<
<
"Vector v1 = " ;
for ( int i=0;
i<
3;
i++)
{
cout<
<
v1[i]<
<
" " ;
}// print vector v2
cout<
<
"\nVector v2 = " ;
for ( int i=0;
i<
3;
i++)
{
cout<
<
v2[i]<
<
" " ;
}return 0;
}
输出如下:
Vector v1 = 4 5 6
Vector v2 = 1 2 3
【std::swap和std::vector::swap之间有什么区别()】被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C++ STL通过激烈的问题解决过程来训练和掌握这些概念。
推荐阅读
- 算法题(如何计算从1到n的所有数字的数字总和())
- JavaScript如何使用正则表达式(用法示例)
- 云服务和云计算详细介绍和指南
- PHP如何使用gethostbyname()函数(用法示例)
- 如何打包Angular应用到生产环境()
- JavaScript中的控制台对象用法详细指南
- Scala函数基础(解析和用法示例)
- Android基本控件之RadioGroup
- Android上sshd的使用