Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 向量特定语法的向量_C++_C++11_Vector - Fatal编程技术网

C++ 向量特定语法的向量

C++ 向量特定语法的向量,c++,c++11,vector,C++,C++11,Vector,我通常用以下语法声明(并定义)我的向量向量 vector<vector<int>> graph = *new vector<vector<int>>(n, *new vector<int>(n, 0)); vectorgraph=*新向量(n,*新向量(n,0)); 这里已经定义了n。这通常在大多数编译器中都能正常工作。但几天前,我尝试将源文件导入到另一个系统,但其中充满了编译错误,例如, “>>”后应为主表达式” 我不记得确切的错

我通常用以下语法声明(并定义)我的向量向量

vector<vector<int>> graph = *new vector<vector<int>>(n, *new vector<int>(n, 0));
vectorgraph=*新向量(n,*新向量(n,0));
这里已经定义了n。这通常在大多数编译器中都能正常工作。但几天前,我尝试将源文件导入到另一个系统,但其中充满了编译错误,例如,
“>>”后应为主表达式”
我不记得确切的错误,但知道在两侧的'>'和'>'之间添加空格后,错误被删除。i、 e

vector<vector<int> > graph = *new vector<vector<int> >(n, *new vector<int>(n, 0));
vectorgraph=*新向量(n,*新向量(n,0));

我知道语法要求我们在两个'>'之间添加空格,但我想知道编译器之间是否有任何区别,因为它们都使用c++11甚至相同的IDE。我已经使用这种语法很长时间了,编辑每一种语法都会让人非常沮丧。了解它在哪些编译器上工作会更容易。

我将给您一个分为两部分的答案:

vector<...> v = *new vector<...>(...)
或者只是

vector<vector<int>> graph(n, vector<int>(n, 0));
向量图(n,向量(n,0));

现在你的问题的答案是:C++标准开始允许 >代码>关闭从C++ 11开始的嵌套模板(见),所以你需要配置编译器至少使用C++ 11标准(通常使用-STD= C++ 11标志)。然而,我知道的几乎所有最近的编译器都默认使用这个标准


要获得更详细的答案,您需要告诉我们您使用的是哪种IDE和编译器。

“我通常使用以下语法声明(并定义)我的向量向量”哦,天哪,不。为什么您要用浪费内存的指针声明非指针
*new…
是内存泄漏。你打算怎样删除那个指针?请不要这样定义你的向量。请按照每个教程所使用的方法来定义它们。
C++11
中引入了避免在
>
之间留空格的功能。在此之前,你需要一个空间。
vector<vector<int>> graph(n, vector<int>(n, 0));