Vector is translated into a vector, also known as a variable-length array 1. The definition of vector
vector<typename> name;
vector<int> vi;
vector<double> vi;
vector<char> vi;
vector<node> vi;//node可以是结构体
push_back(x) adds an element x to the end of the element of vi
for(int i=1;i<=5;i++){
vi.push_back(i);
}
vi.size() returns the number of elements in the vector
cout<<vi.size()<<endl; //5
empty() Determine whether it is empty
cout<<vi.empty()<<endl;//0 表示不为空
back() returns the last element
in the vector front() returns the first element in the vector
//back() 返回vector里的最后一个元素
//1 2 3 4 5
cout<<vi.back()<<endl; //5
//front() 返回vector里的第一个元素
cout<<vi.front()<<endl;//1
traversal of vector
//1. 通过下标方式
for(int i=0;i<vi.size();i++){
//1 2 3 4 5
cout<<vi[i]<<" ";
}
cout<<endl;
//2.通过迭代器的方法 vector<typename>::iterator it可以把它看做类似于指针的东西
//vi[i]和(vi.begin()+i)是等价的
//vi.begin()和vi.end()是左开右闭的end()表示的是尾元素的下一个
//迭代器支持++,--的操作
//1.
vector<int>::iterator it;
for(it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";
}
cout<<endl;
//2.
it=vi.begin();
for(int i=0;i<vi.size();i++){
cout<<*(it+i)<<" ";
}
cout<<endl;
//3.
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";
}
pop_back() delete the tail element
vi.pop_back();
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";//1 2 3 4
}
clear() clear the element
vi.clear();
cout<<vi.size()<<endl;//0
insert() inserts an element x into any iterator it of the vector
vi.insert(vi.begin(),-1);//在vi的开头加入-1
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";//-1 1 2 3 4
}
cout<<endl;
vi.insert(vi.begin()+vi.size(),5);//在vi的末尾添加5
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";//-1 1 2 3 4 5
}
erase() delete elements
//erase() 有两种用法一种是删除单个元素另一种是删除一个区间的所有元素
//-1 1 2 3 4 5
//删除一个元素
vi.erase(vi.begin()+4);//删除4
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";//-1 1 2 3 5
}
cout<<endl;
//删除整个区间
vi.erase(vi.begin(),vi.begin()+3);//左闭右开不包括右边的那个值
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";//3,5
}
Application of functions in vector and algorithm
//reverse() 倒置 是在algorithm里面的函数
//12345
reverse(vi.begin(),vi.end());
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";//5,4,3,2,1
}
cout<<endl;
//sort()排序默认是从小到大排 还可以任意排序后面讲
sort(vi.begin(),vi.end());
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
cout<<*it<<" ";//1,2,3,4,5
}