基本クラスOrganismがあり、AntとDoodlebugの2つの派生クラスがあります。これは、捕食者と被食者の問題のためのものです。Baseクラスタイプの2Dベクトルが必要ですが、派生クラスの要素を割り当てることができます。これは、20 X 20の文字コード表で世界の状態を表すという考え方です。要素がベースの場合、文字は''ですが、要素が派生している場合は、別の文字になります。
1次元ベクトルの場合の方法について読みましたが、2次元ベクトルへのポインターを宣言する適切な構文が見つかりませんでした。これが私が持っているものです、私が入れようとするとエラーが発生しました:
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++;
}