我有一个基类 Organism,它有 2 个派生类 Ant 和 Doodlebug。这是针对捕食者 - 猎物问题。我想要一个基类类型的二维向量,但能够分配派生类的元素。这个想法是这将在 20 X 20 字符映射中表示世界的状态,其中如果元素是基础,则 char 是 ' ',而如果元素是派生的,它将是不同的 char。
如果它是一维向量,我读到了如何做到这一点,但我找不到声明指向二维向量的指针的正确语法。这就是我所拥有的,如果我尝试输入会出错:
vector < vector<Organism*> > state(20, vector<Organism*>(20));
但这是编译但打印出数字字段而不是字符的内容:
vector < vector<Organism> > state(20, vector<Organism>(20));
string line;
int stateline = 0;
while(getline(ini_state_file, line))
{
for(int i = 0; i < line.size(); i++)
{
if(line[i] == 'o')
state[stateline][i] = Ant();
else if(line[i] == 'X')
state[stateline][i] = Doodlebug();
}
stateline++;
}