【发布时间】:2013-07-13 20:17:36
【问题描述】:
所以,我有以下内容:
std::vector< std::vector <int> > fog;
我很天真地初始化它:
for(int i=0; i<A_NUMBER; i++)
{
std::vector <int> fogRow;
for(int j=0; j<OTHER_NUMBER; j++)
{
fogRow.push_back( 0 );
}
fog.push_back(fogRow);
}
而且感觉很不对劲……有没有像这样初始化向量的另一种方法?
【问题讨论】:
-
如果您不需要比
std::vector<int>::max_size()更多的空间,我建议您为二维向量使用一维向量实现。 Here -
如果至少有一个答案不涉及复制内部向量,那就太好了:memset 比 memcpy 快(如果 operator new 得到 calloc 甚至更好内联)。