I’m trying to do something like:
#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;
}
}
}
However, apparently I can’t initialize the “board” vector of vectors this way.
How can I create a public member of a 2d vector type and initialize it properly?
Compiling your code with g++, the error I get is that neither
srand()norrand()were declared. I had to add#include <cstdlib>for the code to compile. But once I did that, it worked just fine. So, I’d say that other than adding that include statement, your code is fine. You’re initializing the vector correctly.Perhaps the code you have doesn’t quite match what you posted? I would assume that if your actual code didn’t include cstdlib, that you would have quickly understood that that was the problem rather than something with vector. So, if your code doesn’t quite match what you posted, maybe that’s the problem. If not, what compiler are you using?