【发布时间】:2010-04-28 23:30:51
【问题描述】:
我正在尝试做类似的事情:
#include <iostream>
#include <vector>
#include <ctime>
class Clickomania
{
public:
Clickomania();
std::vector<std::vector<int> > board;
};
Clickomania::Clickomania()
: board(12, std::vector<int>(8,0)) <<<<<<<
{
srand((unsigned)time(0));
for(int i = 0; i < 12; i++)
{
for(int j = 0; j < 8; j++)
{
int color = (rand() % 6) + 1;
board[i][j] = color;
}
}
}
但是,显然我不能以这种方式初始化向量的“板”向量。
如何创建 2d 矢量类型的公共成员并正确初始化它?
【问题讨论】:
-
为什么不能这样初始化呢? (除了您可能应该在其他地方调用
srand,而不是每次创建板时)。 -
它在 Visual Studio 2005 中编译得很好。究竟是什么编译器错误?
-
编译并且看起来不错。不过,您应该在其他地方调用
srand并提供参数而不是“幻数”`12、8、0、6 等... -
我正在使用 VS2010 并尝试使用上面的代码创建一个二维向量。我在“board[i][j] = color;”中的“[j]”下得到一个编译器错误- “表达式必须具有指向对象的类型”。如果这个问题不是那么密切相关,我几乎会自己提出一个问题。
-
@Inquisitor 你把
board定义为什么?
标签: c++