矢量中的双V形变得误读?

Sir*_*lot 2 c++

在Accelerated C++一书中,声明如果你声明这样的向量向量:

vector<vector<int>> foo;
Run Code Online (Sandbox Code Playgroud)

它可能会产生错误,因为>>可能被误读为运算符,所以你实际上应该像这样写它:

vector<vector<int> > foo;
Run Code Online (Sandbox Code Playgroud)

但是,我使用这些结构编写第一种方式的代码似乎有效.这是一个我应该遵循的现代约定吗?

CB *_*ley 5

当前版本的C++(C++ 11)使第一个版本合法化.有些编译器总是接受它(技术上对C++ 03有误).第二个版本更安全,更广泛兼容.