导航
1.vector 基本认识及构造函数
2.vector 赋值
3.vector 的容量大小
4.vector 的插入删除
5.vector 的数据存取
6.vector 的容器互换
7.vector 预留空间
———————————————————————————————————
1.vector 基本认识及构造函数
功能:与数组十分相似,也成为单端数组
区别:数组是静态的,vector是动态扩展的
动态扩展:并不是原来空间续接新空间,而是将数据拷贝到新空间,释放原来空间
vector容器的迭代器是支持随机访问的迭代器
vector的构造函数
vector< T >v; //默认构造函数
vector(v.begin(),v.end()); //将[ begin(),end())中的拷贝到本身
vector(n,elem); //构造函数将n个elem数据拷贝本身
vector(const vector &vec); //拷贝构造函数
例子:
#include <iostream> using namespace std; #include <string> #include <vector> void PrintVector(vector<int>&v) //打印vector中的数据 { for(vector<int>::iterator it = v.begin();it!= v.end();it++) { cout<<(*it)<<" "; } cout<<endl; } void test01() { //vector 构造函数 vector<int> v; //1.默认构造函数 for(int i=0;i<4;i++) { v.push_back(i); } PrintVector(v); //2.区间构造 vector<int>v1(v.begin(),v.end()); PrintVector(v1); //3.n个elem构造 vector<int>v3(5,99); //存入5个99 PrintVector(v3); //4.拷贝构造函数 vector<int>v4(v3); PrintVector(v4); } int main() { test01(); system("pause"); return 0; }
运行结果:
———————————————————————————————————
2.vector 赋值
普通赋值 .push_back()
operator= 赋值
assign 区间赋值
assign n个elem赋值
例:
#include <iostream> using namespace std; #include <string> #include <vector> void PrintVector(vector<int>&v) //打印vector中的数据 { for(vector<int>::iterator it = v.begin();it!= v.end();it++) { cout<<(*it)<<" "; } cout<<endl; } void test01() { //vector 赋值 vector<int> v; for(int i=0;i<10;i++) { //普通赋值 v.push_back(i); } PrintVector(v); //1.operator= vector<int> v1; v1 = v; PrintVector(v1); //2.assign 区间 vector<int> v2; v2.assign(v1.begin(),v1.end()); PrintVector(v2); //3.assign n个elem赋值 vector<int> v3; v3.assign(5,10); PrintVector(v3); } int main() { test01(); system("pause"); return 0; }
运行结果:
———————————————————————————————————
3.vector 的容量大小
.empty() //判断容器是否为空
.capacity() //容器的容量
.size() //返回容器中的元素个数
.resize(int num) //重新指定容器长度为num,容器变长,则以默认值0填充到新位置;变短超出元素被删
.resize(int num.int elem) //同上,不过多出来的位置填充elem
例:
#include <iostream> using namespace std; #include <string> #include <vector> void PrintVector(vector<int>&v) //打印vector中的数据 { for(vector<int>::iterator it = v.begin();it!= v.end();it++) { cout<<(*it)<<" "; } cout<<endl; } void test01() { //vector 赋值 vector<int> v; for(int i=0;i<10;i++) { //普通赋值 v.push_back(i); } PrintVector(v); //判断容器是否为空 if(v.empty()) { cout<<"容器为空"<<endl; } else { cout<<"容器不为空"<<endl; cout<<"v容器的容量为:"<<v.capacity()<<endl; cout<<"容量的大小为:"<<v.size()<<endl; } v.resize(15); //重新指定容器长度,多出来部分0填充,少的话对用位置删除 PrintVector(v); v.resize(20,100); //重新指定容器长度,多出来的部分用100代替 PrintVector(v); v.resize(5); PrintVector(v); //少的部分删除对应位置 } int main() { test01(); system("pause"); return 0; }
运行结果:
———————————————————————————————————