我正在尝试使用我想用 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++ 大脑理解,但是如果像这样的大向量是一个坏主意,请随时告诉我,等等。
谢谢一堆。
编辑:我误认为“因为新而不允许”。我不知道我在哪里误读了它,因为它显然有效,而且如果不这样做也没有多大意义。谢谢。