http://blog.csdn.net/yuanjilai/article/details/7321484这篇博客里面有详细的vector变量的使用方式!!
对于二维vector变量,vv.size()的值vector的行数,vv[i].size()的值是vector的列数!!
一个二维向量每个元素的长度可以不同,例如
上面代码产生一个长度不同的二维向量,第一行只有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