前言
当你使用了\(vector\) 你一定觉得这是一个非常实用,非常好用的数据结构。当你这样想的时候,你就陷入了\(vector\)的圈套。
正文 注意事项
vector的定义与赋值操作
当你定义了一个指定大小的\(vector\),如:vector
具体事例
#include<bits/stdc++.h>
#define set thesetisset
using namespace std;
vector<int > v(10);
int main(){
for(int i=0;i<v.size();i++) cout <<v[i]<<" ";
cout<<endl;
v.push_back(114514);
for(int i=0;i<v.size();i++) cout<< v[i]<<" ";
int n=v.size();
return 0;
}
vector的清空
clear()
使用方法 \(v.clear();\)
原理 把\(v.size()\)设置为 \(0\)
注意当你使用 v.clear()的时候vector并没有真正的清空,此时原有的元素并没有发生改变。虽然你在之后的使用中,会把元素覆盖,但这依然值得注意。
#include<bits/stdc++.h>
using namespace std;
vector<int > v;
int main(){
v.push_back(1);
v.push_back(1);
v.push_back(4);
v.push_back(5);
v.push_back(1);
v.push_back(4);
int n=v.size();
for(int i=0;i<=n;i++) cout <<v[i]<<" ";
cout<<endl;
v.clear();
for(int i=0;i<=n;i++) cout <<v[i]<<" ";
cout<<endl;
v.push_back(6);
for(int i=0;i<=n;i++) cout <<v[i]<<" ";
return 0;
}
erase()
不是特别常用。这里就不说明了。
swap()
使用方法
一维
vector<int>().swap(v);
二维
for(int i=0;i<=N;i++){ vector<int>().swap(son[i]);
原理 将当前v与一个空的vector交换。
标签:int,clear,back,vector,swap,push,可恶 From: https://www.cnblogs.com/wh1sky/p/18053776