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++标准开始允许
要获得更详细的答案,您需要告诉我们您使用的是哪种IDE和编译器。“我通常使用以下语法声明(并定义)我的向量向量”哦,天哪,不。为什么您要用浪费内存的指针声明非指针
*new…
是内存泄漏。你打算怎样删除那个指针?请不要这样定义你的向量。请按照每个教程所使用的方法来定义它们。C++11
中引入了避免在>
之间留空格的功能。在此之前,你需要一个空间。
vector<vector<int>> graph(n, vector<int>(n, 0));