除了array外,其余容器swap后,原指针扔指向原来元素,(元素本身没有被移动过)
arrray,则会真正交换两个array的元素,导致指针会指向新的元素
#include <QCoreApplication>
#include<array>
#include<vector>
#include<iostream>
int main(int argc, char *argv[])
{
std::array<int,3> v1 ={1,2,3};
std::array<int,3> v2 = {4,5,6};
auto p1 = v1.begin()+1;
auto p2 = v2.begin()+1;
v1.swap(v2);
std::cout<<*p1<<std::endl;// 5
std::vector<int> v3 = {1,2,3};
std::vector<int> v4 = {4,5,6};
auto p3 = v3.begin()+1;
auto p4 = v4.begin()+1;
v3.swap(v4);
std::cout<<*p3<<std::endl;
}
}
C++容器swap
最新推荐文章于 2025-01-20 15:55:57 发布