通俗来说vector为变长数组
vector<int> name1;
vector<double> name2;
vector<vector<int> > name3;
定义vector数组:
vector<int> vi[100];
//vi[0] - vi[99] 每一个都是vector容器
容器内元素的访问:
1、直接通过下标访问
2、通过迭代器访问
vector<int>::iterator it;
//类似指针的东西
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(void){
vector<int> vi;
for(int i=1; i<=5;i++){
vi.push_back(i);
}
vector<int>::iterator it = vi.begin();
for(int i =0;i<5;i++){
printf("%d",*(it + i));
}
}
使用迭代器的自加操作:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(void){
vector<int> vi;
for(int i=1; i<=5;i++){
vi.push_back(i);
}
for(vector<int>::iterator it = vi.begin();it != vi.end();it++){
printf("%d",*it);
}
}
vector常用函数解析
push_back():在vector后面添加一个元素x
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(void){
vector<int> vi;
for(int i=1; i<=5;i++){
vi.push_back(i);
}
for(int i = 0;i<5;i++){
printf("%d",vi[i]);
}
}
pop_back():删除vector的尾元素
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(void){
vector<int> vi;
for(int i=1; i<=5;i++){
vi.push_back(i);
}
vi.pop_back();
for(int i = 0;i<vi.size();i++){
printf("%d",vi[i]);
}
}
size():获得vector中元素的个数
clear():清空vector
insert(it,x):在vector的任意迭代器it处插入x
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(void){
vector<int> vi;
for(int i=1; i<=5;i++){
vi.push_back(i);
}
vi.insert(vi.begin()+2,-1);
for(int i = 0;i<vi.size();i++){
printf("%d",vi[i]);
}
}
erase(it):删除迭代器it处的元素
erase(first,last):删除迭代器区间内的元素(左闭右开)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(void){
vector<int> vi;
for(int i=1; i<=5;i++){
vi.push_back(i);
}
vi.erase(vi.begin()+2);
for(int i = 0;i<vi.size();i++){
printf("%d",vi[i]);
}
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(void){
vector<int> vi;
for(int i=1; i<=5;i++){
vi.push_back(i);
}
vi.erase(vi.begin()+2,vi.begin() + 4);
for(int i = 0;i<vi.size();i++){
printf("%d",vi[i]);
}
}