C++ vector关于二维向量.申明与赋值..

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:59:40
找了点书.有这样的定义
vector<vector<int> >vi;
但不知道.如何定义行与列的个数,如5×5矩阵或不等列二维..
..
请高手帮帮我.谢啦!
可是vector<int> vi(10);都可以指定它的size...这又怎么说呢

vector只是个容器啊,它仅是存储物件而已,并不能初始化行与列的哇。你要负责自己插入元素的。
你说的vector<int> vi(10),这种形式的初始化只是适用于顺序初始化容器,而且,虽然它的作用有点像是指定了个数,但是,其实它是初始化了10个为0的物件,vector本身还是容器,不要把它理解为矩阵还是几维几维的东西,用容器如果纯粹是来处理数组做的事情,那就不是使用容器的意义了。所以你说到了什么二维要来指定几乘几的,就不可以了,因为它只是存储物件的东西,你在一维的时候,你只能告诉它你存储的是什么,而不能具体到告诉它我要你实现存储的物件要怎样怎样的功能。
当然,可以变相的实现这个功能,比如5×5的,vector<vector<int> >vi,那你将vi初始化5个物件,每个物件又是一个存放5个数据的物件,不就可以了么。
给出个实现的方法。
std::vector< std::vector<int> > vi;
for( std::size_t ix = 0;ix != 5;++ix )
{
for( std::size_t jx = 0;jx != 5;++jx )
vi[ix].push_back(0);
}