Я пытаюсь использовать большой 2D-вектор, который я хочу выделить новым (потому что он большой).назначить элементы в векторе, объявленном новым. C++
, если я скажу:
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++, чтобы понять, но не стесняйтесь, чтобы сообщить мне, является ли большой вектор подобным, это плохая идея и т. Д.
Спасибо, ,
Редактировать: Я ошибаюсь, что «не допускается из-за новых». Я не знаю, где я это неправильно понял, потому что он, очевидно, работает, и не будет иметь для этого слишком большого смысла. Благодарю.
Что значит «* mary [5] [5] = что не разрешено ни из-за« нового »? Просьба уточнить.Вероятно, вы ошибаетесь. – atzz