Я пытаюсь использовать большой 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 [5] [5] = все, что не разрешено из-за "нового", верно?
Спасибо за помощь.Этот вектор я сейчас и буду использовать, потому что моему маленькому мозгу с ++ он достаточно прост для понимания, но не стесняйтесь, дайте мне знать, если такой большой вектор - плохая идея и т. Д.
Спасибосвязка.
Редактировать: Я ошибаюсь по поводу "не разрешено из-за нового".Я не знаю, где я это неправильно истолковал, потому что это, очевидно, работает, и не будет иметь особого смысла, чтобы этого не делать.Спасибо.