c++中vector的使用:如何求二维vector的大小以及insert函数的用法

http://blog.csdn.net/yuanjilai/article/details/7321484这篇博客里面有详细的vector变量的使用方式!!

对于二维vector变量,vv.size()的值vector的行数,vv[i].size()的值是vector的列数!!

一个二维向量每个元素的长度可以不同,例如

[cpp]  view plain  copy
  1. vector<vector<int> >vv;  
  2. for(int c = 1; c <= 3; c++)  
  3.     vv.push_back(vector<int>(c,0));  

上面代码产生一个长度不同的二维向量,第一行只有1个元素,第二行有两个,第三行三个。


.

vector中insert函数的使用方式有下面三种:

iterator insert(iterator position,const value_type& val)

void insert(iterator position,size_type n,const value_type& val)

void insert(iterator position, InputIterator first,InputIterator last)

插入元素的时候,vector是通过在特定位置position的前面插入新的元素来进行扩展的。通过插入的元素有效的增加了容器的size。

当且仅当新的向量大小超过当前向量容量的时候,会导致已经分配的存储空间自动重新分配。

因为vector使用array作为他们的底层存储,所以在position位置插入元素而不是在vector的end插入元素会引起容器重新分配所有的位于position后面的元素去到新的position。

这个操作总的来说并不是效率很高,相比于通过其他种类的序列容器比如list或者forward_list实现同样的操作。

insert里面的参数决定了插入元素的个数以及他们应该初始化的值。

上面的方式中,最后一个中的first和last,是指明一定范围的迭代器。[first, last)中的元素会被插入到position,顺序不变。需要注意的是这个范围包括元素first但是不包括元素last。

对于iterator类型的返回值,返回的迭代器指向的是新插入的元素中的第一个元素。!!


二维vector向量的初始化:

vector<vector <int> > ivec(m ,vector<int>(n)); //m*n的二维vector,注意两个 "> "之间要有空格!

vector<vector <int> > ivec(m ,vector<int>(n,0)); //m*n的二维vector,所有元素初始化为0

具体的可以查看http://www.cnblogs.com/wei-li/archive/2012/06/08/2541576.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值