newで割り当てたい大きな2Dベクトルを使用しようとしています(大きいため)。
私が言うなら:
vector< vector<int> > bob;
bob = vector< vector<int> >(16, vector<int>(1<<12,0));
bob[5][5] = 777;
できます。しかし、私が言うなら:
std::vector< std::vector<int> > *mary;
mary = new vector< vector<int> >(16, vector<int>(1<<12, 0));
mary[5][5] = 777;
それは機能せず、エラーが発生します:
エラー1エラーC2679:バイナリ'=':タイプ'int'の右側のオペランドをとる演算子が見つかりません(または受け入れ可能な変換がありません)c:\ Users \ jsparger \ Documents \ My Dropbox \ ARI \ VME_0.01 \ VME_0.01 \ V965.cpp 11 VME_0.01
明らかに、私はC++を初めて使用します。この操作を実行するために使用する必要のある構文を誰かが説明してもらえますか。maryはポインタなので、なぜこれが機能しないのかはわかりますが、* mary [5] [5] =「新しい」ために許可されていないものは何ですか?
助けてくれてありがとう。このベクトルは、私の小さなc ++の頭脳が理解するのに十分簡単に思えるので、今のところ使用しますが、このような大きなベクトルが悪い考えであるかどうかなど、遠慮なく知らせてください。
本当にありがとう。
編集:「新品のため許可されていません」と誤解しています。それは明らかに機能し、そうでないのはあまり意味がないので、どこでそれを誤解したのかわかりません。ありがとう。