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这个是什么情况?是我的用法有问题吗?如果是的,应该怎么做呢?
Quote: 引用:vector< vector< card > > AIcards( 4, vector< card >( 13 ) );谢谢,真的可以哦!不过我还有一个问题,就是定义了一个vector< vector< card > > AIcards后,怎么知道它的两个维数呢?
vector< vector< card > > AIcards( 4, vector< card >( 13 ) );
Quote: 引用:Quote: 引用:不过,无论如何,嵌套vector其实是不被推荐的,影响性能,可改为vector< vector< card >* > AIcards;更好些。后面的这个与原来的有什么区别呢?STL是通过值语义复制的,元素为类会增加许多构造和析构带来的成本,改为指针后,这类成本少多了。
Quote: 引用:不过,无论如何,嵌套vector其实是不被推荐的,影响性能,可改为vector< vector< card >* > AIcards;更好些。后面的这个与原来的有什么区别呢?
不过,无论如何,嵌套vector其实是不被推荐的,影响性能,可改为vector< vector< card >* > AIcards;更好些。