C++ vector关于二维向量.申明与赋值..
找了点书.有这样的定义vector<vector<int>>vi;但不知道.如何定义行与列的个数,如5×5矩阵或不等列二维....请高手帮帮我.谢啦!可是vector<i...
找了点书.有这样的定义
vector<vector<int> >vi;
但不知道.如何定义行与列的个数,如5×5矩阵或不等列二维..
..
请高手帮帮我.谢啦!
可是vector<int> vi(10);都可以指定它的size...这又怎么说呢 展开
vector<vector<int> >vi;
但不知道.如何定义行与列的个数,如5×5矩阵或不等列二维..
..
请高手帮帮我.谢啦!
可是vector<int> vi(10);都可以指定它的size...这又怎么说呢 展开
1个回答
展开全部
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);
}
你说的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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询