c++中vector的用法详解

合集下载

c++vector基本函数、排序、查找用法

c++vector基本函数、排序、查找用法

c++vector基本函数、排序、查找⽤法vector⽤法⽬录:1、基本⽤法:头⽂件:#include<vector>定义vector:整数型: vector<int>a;字符型: vector<char>a;字符串型: vector<string>a; (注意字符串型输⼊输出⽤cin和cout)固定vector的⼤⼩:vector<int>a(105);在容器最后存⼊新元素:for(int i=0;i<10;i++){b.push_back(i);}将字符数组中的数据赋值给容器:1、遍历赋值:char a[MAX+5];vector<char>vc;cin>>a;int la=strlen(a);for(int i=0;i<la;i++)vc.push_back(a[i]);2、定义容器时赋值:char a[MAX+5];cin>>a;int la=strlen(a);vector<char>vc(a,a+la);判断容器的长度:printf("%d\n",b.size());遍历容器中元素:1、遍历输出for(int i=0;i<vc.size();i++)printf("%c",vc[i]);printf("\n");2、错误⽰例:for(int i=vc.begin();i<vc.end();i++){cout<<vc[i]<<" ";}cout<<endl;清空容器、判断是否为空、删除最后元素:清空容器: a.clear();//清空a中的元素判断容器是否空:a.empty();//判断a是否为空,空则返回ture,不空则返回false删除容器最后的元素: a.pop_back(); ///括号内不可以添加index删除指定元素2、vector的删除操作vector很好的⼀点就是可以实现删除操作,⽤它来做模拟很好实现。

c++中vector的用法详解

c++中vector的用法详解

c++中vector的用法详解vector(向量): C++中的一种数据结构,确切的讲是一个类.它相当于一个动态的数组,当程序员无法明白自己需要的数组的规模多大时,用其来解决咨询题能够达到最大节约空间的目的.用法:1.文件包含:首先在程序开头处加上#include以包含所需要的类文件vector还有一定要加上using namespace std;2.变量声明:2.1 例:声明一个int向量以替代一维的数组:vector a;(等于声明了一个int数组a[],大小没有指定,能够动态的向里面添加删除)。

2.2 例:用vector代替二维数组.事实上只要声明一个一维数组向量即可,而一个数组的名字事实上代表的是它的首地址,因此只要声明一个地址的向量即可,即:vector a.同理想用向量代替三维数组也是一样,vector a;再往上面依此类推.3.具体的用法以及函数调用:3.1 如何得到向量中的元素?其用法和数组一样:例如:vector aint b = 5;a.push_back(b);//该函数下面有详解cout c.c.clear()移除容器中所有数据。

c.empty()推断容器是否为空。

c.erase(pos)删除pos位置的数据c.erase(beg,end)删除[beg,end)区间的数据c.front()传回第一个数据。

c.insert(pos,elem)在pos位置插入一个elem拷贝c.pop_back()删除最后一个数据。

c.push_back(elem)在尾部加入一个数据。

c.resize(num)重新设置该容器的大小c.size()回容器中实际数据的个数。

c.begin()返回指向容器第一个元素的迭代器c.end()返回指向容器最后一个元素的迭代器4.内存治理与效率1》使用reserve()函数提早设定容量大小,幸免多次容量扩充操作导致效率低下。

关于STL容器,最令人赞扬的特性之一就是是只要不超过它们的最大大小,它们就能够自动增长到足以容纳你放到里面去的数据。

C++vector数组用法及解析

C++vector数组用法及解析

C++vector数组⽤法及解析⽬录⼀、什么是vector数组⼆、vector的基本操作vector数组的初始化向vector中插⼊元素删除元素遍历数组利⽤vector创建动态⼆维数组⼀、什么是vector数组vector是向量类型vector数组是可以存放任意数据类型的动态数组和普通数组类似,可以通过下标对数组中的元素进⾏引⽤⼆、vector的基本操作使⽤vector数组要在头⽂件中加 #include<vector>vector数组的声明vector<int> vec;//声明⼀个存放int型的向量vector数组的初始化vector<int> vec(1,2,3,4,5,6);//vec中的内容为1,2,3,4,5,6vector<int> vec(a);//声明并⽤a向量初始化vec向量int a[5]={1,2,3,4,5};vector<int> vec(a,a+5);//将a数组的元素⽤来初始化vector向量vector<int> vec(&a[1],&a[4]);//将a[1]-a[4]范围内的元素作为vec的初始值向vector中插⼊元素//在vector的末尾插⼊新元素vec.push_back(1);//在迭代器的前⾯插⼊新元素vector<int>::iterator it;it=vec.begin();vec.insert(it,5);//在第⼀个元素前⾯插⼊5//在vector中加⼊3个1元素,同时清除掉以前的元素vec.assign(3,1);//现在vector中只有3个1删除元素//删除最后⼀个元素vec.pop_back();//删除指定位置的元素vec.erase(vec.begin());//删除第⼀个位置的元素值//清除所有元素vec,clear();//判断该数组是否为空vec.empty();遍历数组//向数组⼀样利⽤下标进⾏访问vector<int> a;for(int i=0;i<a.size();i++){cout<<a[i];}//利⽤迭代器进⾏访问vector<int>::iterator it;for(it=a.begin();it!=a.end();it++){cout<<*it;}利⽤vector创建动态⼆维数组//利⽤vector数组//n⾏m列,即a[n][m]cin>>n>>m;vector<vector <int> >a(n);for(int i=0;i<n;i++){a[i].resize(m);}到此这篇关于C++ vector数组⽤法解析的⽂章就介绍到这了,更多相关C++ vector内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

c++中vector的用法详解vector类用法

c++中vector的用法详解vector类用法

c++中vector的用法详解|vector类用法vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.用法:1.文件包含:首先在程序开头处加上#include以包含所需要的类文件vector还有一定要加上using namespace std;2.变量声明:2.1 例:声明一个int向量以替代一维的数组:vector a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。

2.2 例:用vector代替二维数组.其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址,所以只要声明一个地址的向量即可,即:vector a.同理想用向量代替三维数组也是一样,vector a;再往上面依此类推.3.具体的用法以及函数调用:3.1 如何得到向量中的元素?其用法和数组一样:例如:vector aint b = 5;a.push_back(b);//该函数下面有详解cout<1.push_back 在数组的最后添加一个数据2.pop_back 去掉数组的最后一个数据3.at 得到编号位置的数据4.begin 得到数组头的指针5.end 得到数组的最后一个单元+1的指针6.front 得到数组头的引用7.back 得到数组的最后一个单元的引用8.max_size 得到vector最大可以是多大9.capacity 当前vector分配的大小10.size 当前使用数据的大小11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值12.reserve 改变当前vecotr所分配空间的大小13.erase 删除指针指向的数据项14.clear 清空当前的vector15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)17.empty 判断vector是否为空18.swap 与另一个vector交换数据3.2 详细的函数实现功能:其中vector c.c.clear()移除容器中所有数据。

c语言vector转数组

c语言vector转数组

c语言vector转数组如何在C语言中将vector转换为数组在C语言中,我们经常使用数组来存储和操作数据。

而在一些特定情况下,我们可能需要将vector类型的数据转换为数组。

C语言中没有直接支持vector类型,但我们可以通过一些步骤将vector转换为数组。

接下来,我将为你逐步解释如何在C语言中完成这个过程。

从了解vector和数组的基本概念开始,到具体的代码实现。

步骤一:了解vector和数组的基本概念在C++中,vector是一个动态数组,它能够根据需要自行扩展和收缩。

而在C语言中,我们需要使用静态数组来存储数据,其大小在编译时确定。

因此,我们需要先确定vector的大小,然后将其转换为相应大小的数组。

步骤二:确定vector的大小在将vector转换为数组之前,我们首先需要确定vector的大小。

这可以通过vector的size()函数获取。

例如,如果我们有一个名为vec的vector 对象,我们可以使用vec.size()来获取它的大小。

步骤三:定义相应大小的数组有了vector的大小,我们现在可以定义一个相应大小的数组。

我们可以使用C语言中的静态数组来完成这个步骤。

例如,如果vector的大小为n,我们可以定义一个int类型的数组arr,其大小为n。

数组定义的语法如下:int arr[n];在声明数组之后,它们将被分配在内存中,以供后续使用。

步骤四:将vector的元素复制到数组中我们使用for循环遍历vector中的元素,并将其逐个复制到数组中。

C语言中的for循环通常使用变量i作为循环变量,从0开始递增,直到vector 的大小减1。

在每次迭代中,我们将vector中的元素vec[i]复制到数组中的对应位置arr[i]。

这可以通过下面的代码实现:for(int i = 0; i < n; i++){arr[i] = vec[i];}这将确保数组arr中的元素与vector vec中的元素一一对应。

c中vector的用法

c中vector的用法

c中vector的用法推荐文章一个有性格的智能友好机器人——Vector 热度: vector和list的区别是什么热度:如何将jpg转换成cad 热度:c中vector的用法的用法你知道吗?下面小编就跟你们详细介绍下c中vector的用法的用法,希望对你们有用。

c中vector的用法的用法如下:1 基本操作(1)头文件#include<vector>.(2)创建vector对象,vector<int> vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

(5)使用迭代器访问元素.vector<int>::iterator it;for(it=vec.begin();it!=vec.end();it++)cout<<*it<<endl;(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始(8)向量大小:vec.size();(9)清空:vec.clear();2vector的元素不仅仅可以使int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。

下面是一段简短的程序代码:复制代码#include<stdio.h>#include<algorithm>#include<vector>#include<iostream>using namespace std;typedef struct rect{int id;int length;int width;//对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。

C++中vector使用详细说明(转)

C++中vector使用详细说明(转)

C++中vector使⽤详细说明(转)转⾃:⼀、向量的介绍向量 vector 是⼀种对象实体, 能够容纳许多其他类型相同的元素, 因此⼜被称为容器。

与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的⼀种⾃定义的数据类型, 可以⼴义上认为是数组的增强版。

在使⽤它时, 需要包含头⽂件 vector, #include<vector>vector 容器与数组相⽐其优点在于它能够根据需要随时⾃动调整⾃⾝的⼤⼩以便容下所要放⼊的元素。

此外, vector 也提供了许多的⽅法来对⾃⾝进⾏操作。

⼆、向量的声明及初始化vector 型变量的声明以及初始化的形式也有许多, 常⽤的有以下⼏种形式:vector<int> a ; //声明⼀个int型向量avector<int> a(10) ; //声明⼀个初始⼤⼩为10的向量vector<int> a(10, 1) ; //声明⼀个初始⼤⼩为10且初始值都为1的向量vector<int> b(a) ; //声明并⽤向量a初始化向量bvector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值除此之外, 还可以直接使⽤数组来初始化向量:int n[] = {1, 2, 3, 4, 5} ;vector<int> a(n, n+5) ; //将数组n的前5个元素作为向量a的初值vector<int> a(&n[1], &n[4]) ; //将n[1] - n[4]范围内的元素作为向量a的初值三、元素的输⼊及访问元素的输⼊和访问可以像操作普通的数组那样, ⽤cin>>进⾏输⼊, cout<<a[n]这样进⾏输出:⽰例:1 #include<iostream>2 #include<vector>34 using namespace std ;56 int main()7 {8 vector<int> a(10, 0) ; //⼤⼩为10初值为0的向量a910 //对其中部分元素进⾏输⼊11 cin >>a[2] ;12 cin >>a[5] ;13 cin >>a[6] ;1415 //全部输出16 int i ;17 for(i=0; i<a.size(); i++)18 cout<<a[i]<<" " ;1920 return 0 ;21 }在元素的输出上, 还可以使⽤遍历器(⼜称迭代器)进⾏输出控制。

c vector用法

c vector用法

c vector用法摘要:1.C++中的容器2.C vector 的定义与初始化3.C vector 的基本操作4.C vector 的常用功能5.C vector 的注意事项正文:C++是一种功能强大的编程语言,它提供了丰富的数据结构和算法,以满足各种编程需求。

在C++中,容器是一种重要的数据结构,它可以存储和管理数据。

今天我们将介绍C++中的一种常用容器——C vector。

C vector,中文名为C 向量,是C++标准库中的一个容器,用于存储同一类型的数据元素。

C vector 可以在程序运行过程中动态地调整其大小,因此它非常适合存储动态数据。

一、C vector 的定义与初始化要使用C vector,首先需要包含相应的头文件<vector>。

然后,可以使用以下方式定义一个C vector:```vector<数据类型> 变量名(容量);```其中,数据类型可以是int、float、double 等任意类型,容量表示C vector 的初始大小。

例如,定义一个存储整数的C vector:```vector<int> nums(10);```定义之后,C vector 会自动分配内存,并将所有元素初始化为0 或0.0。

二、C vector 的基本操作C vector 提供了许多基本操作,包括访问、修改、添加和删除元素等。

以下是一些常用的操作:1.访问元素:使用下标操作符[],如下:```int num = nums[i];```2.修改元素:使用赋值操作符=,如下:```ums[i] = num;```3.添加元素:使用insert() 函数,如下:```ums.insert(nums.begin(), num);```4.删除元素:使用erase() 函数,如下:```ums.erase(nums.begin());```三、C vector 的常用功能C vector 还提供了许多有用的功能,包括遍历、排序、查找等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c++中vector的用法详解vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.用法:1.文件包含:首先在程序开头处加上#include以包含所需要的类文件vector还有一定要加上using namespace std;2.变量声明:2.1 例:声明一个int向量以替代一维的数组:vector a;(等于声明了一个int 数组a[],大小没有指定,可以动态的向里面添加删除)。

2.2 例:用vector代替二维数组.其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址,所以只要声明一个地址的向量即可,即:vector a.同理想用向量代替三维数组也是一样,vector <int**>a;再往上面依此类推.3.具体的用法以及函数调用:3.1 如何得到向量中的元素?其用法和数组一样:例如:vector aint b = 5;a.push_back(b);//该函数下面有详解cout<<a[0]; 输出结果为5<="" p="">1.push_back 在数组的最后添加一个数据2.pop_back 去掉数组的最后一个数据3.at 得到编号位置的数据4.begin 得到数组头的指针5.end 得到数组的最后一个单元+1的指针6.front 得到数组头的引用7.back 得到数组的最后一个单元的引用8.max_size 得到vector最大可以是多大9.capacity 当前vector分配的大小10.size 当前使用数据的大小11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值12.reserve 改变当前vecotr所分配空间的大小13.erase 删除指针指向的数据项14.clear 清空当前的vector15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)17.empty 判断vector是否为空18.swap 与另一个vector交换数据3.2 详细的函数实现功能:其中vector c.c.clear()移除容器中所有数据。

c.empty()判断容器是否为空。

c.erase(pos)删除pos位置的数据c.erase(beg,end)删除[beg,end)区间的数据c.front()传回第一个数据。

c.insert(pos,elem)在pos位置插入一个elem拷贝c.pop_back()删除最后一个数据。

c.push_back(elem)在尾部加入一个数据。

c.resize(num)重新设置该容器的大小c.size()回容器中实际数据的个数。

c.begin()返回指向容器第一个元素的迭代器c.end()返回指向容器最后一个元素的迭代器4.内存管理与效率1》使用reserve()函数提前设定容量大小,避免多次容量扩充操作导致效率低下。

关于STL容器,最令人称赞的特性之一就是是只要不超过它们的最大大小,它们就可以自动增长到足以容纳你放进去的数据。

(要知道这个最大值,只要调用名叫max_size的成员函数。

)对于vector和string,如果需要更多空间,就以类似realloc的思想来增长大小。

vector容器支持随机访问,因此为了提高效率,它内部使用动态数组的方式实现的。

在通过reserve() 来申请特定大小的时候总是按指数边界来增大其内部缓冲区。

当进行insert或push_back等增加元素的操作时,如果此时动态数组的内存不够用,就要动态的重新分配当前大小的1.5~2倍的新内存区,再把原数组的内容复制过去。

所以,在一般情况下,其访问速度同一般数组,只有在重新分配发生时,其性能才会下降。

正如上面的代码告诉你的那样。

而进行pop_back操作时,capacity并不会因为vector 容器里的元素减少而有所下降,还会维持操作之前的大小。

对于vector 容器来说,如果有大量的数据需要进行push_back,应当使用reserve()函数提前设定其容量大小,否则会出现许多次容量扩充操作,导致效率低下。

reserve成员函数允许你最小化必须进行的重新分配的次数,因而可以避免真分配的开销和迭代器/指针/引用失效。

但在我解释reserve为什么可以那么做之前,让我简要介绍有时候令人困惑的四个相关成员函数。

在标准容器中,只有vector和string提供了所有这些函数。

(1) size()告诉你容器中有多少元素。

它没有告诉你容器为它容纳的元素分配了多少内存。

(2) capacity()告诉你容器在它已经分配的内存中可以容纳多少元素。

那是容器在那块内存中总共可以容纳多少元素,而不是还可以容纳多少元素。

如果你想知道一个vector或string中有多少没有被占用的内存,你必须从capacity()中减去size()。

如果size和capacity 返回同样的值,容器中就没有剩余空间了,而下一次插入(通过insert 或push_back等)会引发上面的重新分配步骤。

(3)resize(Container::size_type n)强制把容器改为容纳n个元素。

调用resize 之后,size将会返回n。

如果n小于当前大小,容器尾部的元素会被销毁。

如果n大于当前大小,新默认构造的元素会添加到容器尾部。

如果n大于当前容量,在元素加入之前会发生重新分配。

(4)reserve(Container::size_type n)强制容器把它的容量改为至少n,提供的n不小于当前大小。

这一般强迫进行一次重新分配,因为容量需要增加。

(如果n小于当前容量,vector忽略它,这个调用什么都不做,string 可能把它的容量减少为size()和n中大的数,但string的大小没有改变。

在我的经验中,使用reserve来从一个string中修整多余容量一般不如使用“交换技巧”,那是条款17的主题。

)这个简介表示了只要有元素需要插入而且容器的容量不足时就会发生重新分配(包括它们维护的原始内存分配和回收,对象的拷贝和析构和迭代器、指针和引用的失效)。

所以,避免重新分配的关键是使用reserve 尽快把容器的容量设置为足够大,最好在容器被构造之后立刻进行。

例如,假定你想建立一个容纳1-1000值的vector。

没有使用reserve,你可以像这样来做:vector v;for (int i = 1; i <= 1000; ++i) v.push_back(i);在大多数STL实现中,这段代码在循环过程中将会导致2到10次重新分配。

(10这个数没什么奇怪的。

记住vector在重新分配发生时一般把容量翻倍,而1000约等于210。

)把代码改为使用reserve,我们得到这个:vector v;v.reserve(1000);for (int i = 1; i <= 1000; ++i) v.push_back(i);这在循环中不会发生重新分配。

在大小和容量之间的关系让我们可以预言什么时候插入将引起vector 或string执行重新分配,而且,可以预言什么时候插入会使指向容器中的迭代器、指针和引用失效。

例如,给出这段代码,string s;...if (s.size() < s.capacity()) {s.push_back('x');}push_back的调用不会使指向这个string中的迭代器、指针或引用失效,因为string的容量保证大于它的大小。

如果不是执行push_back,代码在string的任意位置进行一个insert,我们仍然可以保证在插入期间没有发生重新分配,但是,与伴随string插入时迭代器失效的一般规则一致,所有从插入位置到string结尾的迭代器/指针/引用将失效。

回到本条款的主旨,通常有两情况使用reserve来避免不必要的重新分配。

第一个可用的情况是当你确切或者大约知道有多少元素将最后出现在容器中。

那样的话,就像上面的vector代码,你只是提前reserve适当数量的空间。

第二种情况是保留你可能需要的最大的空间,然后,一旦你添加完全部数据,修整掉任何多余的容量。

2》使用“交换技巧”来修整vector过剩空间/内存有一种方法来把它从曾经最大的容量减少到它现在需要的容量。

这样减少容量的方法常常被称为“收缩到合适(shrink to fit)”。

该方法只需一条语句:vector(ivec).swap(ivec);表达式vector(ivec)建立一个临时vector,它是ivec的一份拷贝:vector的拷贝构造函数做了这个工作。

但是,vector 的拷贝构造函数只分配拷贝的元素需要的内存,所以这个临时vector没有多余的容量。

然后我们让临时vector和ivec交换数据,这时我们完成了,ivec只有临时变量的修整过的容量,而这个临时变量则持有了曾经在ivec中的没用到的过剩容量。

在这里(这个语句结尾),临时vector 被销毁,因此释放了以前ivec使用的内存,收缩到合适。

3》用swap方法强行释放STL Vector所占内存template < class T> void ClearVector( vector& v ){ vectorvtTemp; vtTemp.swap( v );}如vector v ; nums.push_back(1); nums.push_back(3); nums.push_back(2); nums.push_back(4); vector().swap(v);/* 或者v.swap(vector()); *//*或者{ std::vector tmp = v; v.swap(tmp); }; //加大括号{ }是让tmp退出{ }时自动析构*/5.Vector 内存管理成员函数的行为测试C++ STL的vector使用非常广泛,但是对其内存的管理模型一直有多种猜测,下面用实例代码测试来了解其内存管理方式,测试代码如下:#include #include using namespace std;int main(){vector iVec;cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //1个元素,容器容量为1iVec.push_back(1);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //2个元素,容器容量为2iVec.push_back(2);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //3个元素,容器容量为4iVec.push_back(3);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //4个元素,容器容量为4iVec.push_back(4);iVec.push_back(5);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //5个元素,容器容量为8iVec.push_back(6);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //6个元素,容器容量为8iVec.push_back(7);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //7个元素,容器容量为8iVec.push_back(8);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //8个元素,容器容量为8iVec.push_back(9);cout << "容器大小为: " << iVec.size() << endl;cout << "容器容量为: " << iVec.capacity() << endl; //9个元素,容器容量为16/* vs2005/8 容量增长不是翻倍的,如9个元素容量9 10个元素容量13 *//* 测试effective stl中的特殊的交换swap() */cout << "当前vector 的大小为: " << iVec.size() << endl;cout << "当前vector 的容量为: " <<iVec.capacity() << endl;vector(iVec).swap(iVec);cout << "临时的vector对象的大小为: " << (vector(iVec)).size() << endl;cout << "临时的vector对象的容量为: " << (vector(iVec)).capacity() << endl;cout << "交换后,当前vector 的大小为: " << iVec.size() << endl;cout << "交换后,当前vector 的容量为: " << iVec.capacity() << endl;return 0;}6.vector的其他成员函数c.assign(beg,end):将[beg; end)区间中的数据赋值给c。

相关文档
最新文档