リストの配列をデータメンバーとして宣言したクラスがあります。
list <int> **listOfNodes;
次のように、クラスのコンストラクターでリストへのポインター用のスペースを割り当てました (ここで、「v」は必要なリストの数で、引数としてコンストラクターに渡されます)。
listOfNodes=new list<int>* [v];
for (int i = 0; i < v; ++i)
{
list<int> temp;
listOfNodes[i]=&temp; //declaring a new list and making the list pointer point to it
}
これで、関数内に次のコードがあり、ユーザーからの入力を取得して対応するリストに追加します。たとえば、ユーザーが 2 5 を入力した場合、新しいエントリ 5 をインデックス 2 のリスト、つまり listOfNodes[2] が指すリストに push_back する必要があります。
int u,v;
cin>>u>>v;
(*(listOfNodes[u])).push_back(v);
しかし、どういうわけか私のコードは実行時にクラッシュします。誰かが私が間違っているかもしれないことを指摘してください。