在“加速C ++”一书中,声明如果你声明一个这样的向量矢量:
vector<vector<int>> foo;
它可能会产生错误,因为&gt;&gt;可以被误读为运算符,所以你实际上应该这样写:
vector<vector<int> > foo;
但是,我使用这些结构编写第一种方式的代码似乎有效。这是一个我应该遵循的现代惯例吗?
答案 0 :(得分:5)
当前版本的C ++(C ++ 11)使第一个版本合法。有些编译器总是接受它(技术上对C ++ 03有误)。第二个版本更安全,更广泛兼容。