首先,使用需要引入头文件 <vector>。 #include <vector> 2.创建 vector 对象: 直接使用 vector 模板类来创建一个 vector 对象。可以创建存储特定类型元素的 vector,格式为: vector<数据类型> 名字。例如: vector<int> myVector; // 创建一个存储整数的 vector,名字为myVector vector<char> myVector; // 创...
vector <int> myVector = testVector;//输出内容是:1 2 3 4 5for(inti =0; i < myVector.size(); i++) { cout << myVector[i] <<" "; } cout << endl; 3.5使用指针初始化一维vector; vector < int > myVector (*p, *q); 使用另外一个数组的指针来初始化v,这里既可以使用vector的指针,...
3)vector<int> a(b);//用b向量来创建a向量,整体复制性赋值( 4)vector<int> a(b.begin(),b.begin+3);//定义了a值为b中第0个到第2个(共3个)元素( 5)intb[7]={1,2,3,4,5,9,8}; vector<int> a(b,b+7);//从数组中获得初值(6)vector<int> ilist4(7);//默认值初始化,ilist4中将...
int main() { int N=5, M=6; vector<vector<int>> obj(N); //定义二维动态数组大小5行 for(int i =0; i< obj.size(); i++)//动态二维数组为5行6列,值全为0 { obj[i].resize(M); } for(int i=0; i< obj.size(); i++)//输出二维动态数组 { for(int j=0;j<obj[i].size()...
//写法一:ivec.swap(vector<int>(ivec));// or vector<int>(ivec).swap(ivec)//写法二:{std::vector<int>tmp=ivec;ivec.swap(tmp);}//加一对大括号是可以让tmp退出{}的时候自动析构 使用这种方法适用的场景是:vector从前存储了大量数据,经过各种处理后,数据元素大大减少,想要减少vector占用的存储。
使用vector有两种不同的形式,即所谓的数组习惯和 STL习惯。 一、数组习惯用法 1. 定义一个已知长度的 vector : vector< int > ivec( 10 ); //类似数组定义int ia[ 10 ]; 可以通过ivec[索引号] 来访问元素 使用if ( ivec.empty() ) 判断是否是空,ivec.size()判断元素个数。
容器使用一个内存分配器对象来动态地处理它的存储需求。 三、基本函数实现 1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
解释:定义了一个vector容器,元素类型为vector<int>,初始化为包含m个vector<int>对象,每个对象都是一个新创立的vector<int>对象的拷贝,而这个新创立的vector<int>对象被初始化为包含n个0。 vector<int>(n)表示构造一个无名且含n个0的vector<int>对象。
vector<int>vec3(5,1);//初始化了5个值为1的元素 1. 2. (3)复制构造函数初始化 复制构造函数有两种方式,这两种方式等价 ,后者初始化为前者的拷贝,两者类型必须相同,也就是同为int的vector类型,初始化后,两者具有相同的容量和元素,适用于两个数组类型相同时的重命名或数据传递等情况。
3. 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,vector并不会每次都重新分配大小。