Joh*_*nny 1 c++ vector new-operator dynamic-memory-allocation
我试图使用一个大的2D矢量,我想用新的分配(因为它很大).
如果我说:
vector< vector<int> > bob;
bob = vector< vector<int> >(16, vector<int>(1<<12,0));
bob[5][5] = 777;
Run Code Online (Sandbox Code Playgroud)
有用.但如果我说:
std::vector< std::vector<int> > *mary;
mary = new vector< vector<int> >(16, vector<int>(1<<12, 0));
mary[5][5] = 777;
Run Code Online (Sandbox Code Playgroud)
它不起作用,我收到错误:
错误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] =因为"新"而不允许的任何东西,对吧?
谢谢您的帮助.这个载体就是我现在要用的东西,因为它似乎很容易让我的小c ++大脑理解,但是如果像这样的大型载体是一个坏主意等,请随时告诉我.
谢谢一堆.
编辑:我错误地认为"因为新的而不允许".我不知道我在哪里误读了它,因为它显然有效,并且不会因为它不太有意义.谢谢.
如果mary是指针,那么在应用下标运算符之前必须取消引用它:
(*mary)[5][5] = 777;
Run Code Online (Sandbox Code Playgroud)
括号是必需的,因为下标的优先级高于取消引用.
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |