vector的vector(向量的向量)怎么初始化
vector的vector(向量的向量)如何初始化?比如我建立了一个class叫做card,然后定义下面的一个vector的vector
vector的vector(向量的向量)如何初始化? 比如我建立了一个class叫做card,然后定义下面的一个vector的vector, vector<vector<card> > AIcards; 想给它初始化了,因为维数是已经确定了的,于是我想这么做, vector<vector<card> > AIcards(4)(13); 可是编译的时候会报错,报错信息是: missing type specifier - int assumed. Note: C++ does not support default-int 这个是什么情况?是我的用法有问题吗?如果是的,应该怎么做呢? [解决办法]
引用: 比如我建立了一个class叫做card,然后定义下面的一个vector的vector, vector<vector<card> > AIcards; 想给它初始化了,因为维数是已经确定了的,于是我想这么做, vector<vector<card> > AIcards(4)(13); 可是编译的时候会报错,报错信息是: missing type specifier - int assumed. Note: C++ does not support default-int 这个是什么情况?是我的用法有问题吗?如果是的,应该怎么做呢? vector< vector< card > > AIcards( 4, vector< card >( 13 ) );
[解决办法] 应该是三楼的对
[解决办法] 引用: Quote: 引用: vector< vector< card > > AIcards( 4, vector< card >( 13 ) ); 谢谢,真的可以哦!不过我还有一个问题,就是定义了一个 vector< vector< card > > AIcards 后,怎么知道它的两个维数呢?AIcards.size()就是第一维长度;AIcards[i].size()就是各元素的长度。
如果你的编译器支持C++11,也可以使用象5楼那样的列表初始化。
不过,无论如何,嵌套vector其实是不被推荐的,影响性能,可改为
vector< vector< card >* > AIcards;
更好些。
[解决办法] 引用: Quote: 引用: Quote: 引用: 不过,无论如何,嵌套vector其实是不被推荐的,影响性能,可改为 vector< vector< card >* > AIcards; 更好些。 后面的这个与原来的有什么区别呢? STL是通过值语义复制的,元素为类会增加许多构造和析构带来的成本,改为指针后,这类成本少多了。那为什么里面一层不用指针呢?vector< vector<card *> > vec;