我是C ++的新手,在编写课程时,我意识到我的一种方法是要求矢量矢量。应该这样做还是我应该重新考虑我班级的界面? (如何?)
答案 0 :(得分:7)
我认为您使用的容器没问题。你可以这样做
void func(std::vector<std::vector<int> > const& int_matrix);
或在C ++ 11中,后续>
不会被视为'&gt;&gt;'所以你也可以使用
void func(std::vector<std::vector<int>> const& int_matrix);
但问题是,如果您的工作是作为二进制而不是源代码发布的,那么接口的用户应该具有与您相同的STL工具,否则可能会发生奇怪的运行时错误。因此在这种情况下使用STL容器作为接口是不合适的。您必须自己定义一些结构作为参数类型。
答案 1 :(得分:2)
矢量矢量不一定是坏事。如果你需要像多维数组那样的东西,那么你需要你需要的东西。 (只需确保通过[const]引用传递向量)。
您可能想要更改问题的标题,因为标题上写着“vector&lt; T &gt;” (大胆因为它认为它是一个HTML标签)但你的问题是关于向量的向量。
答案 2 :(得分:-1)
IMO,如果可能的话,最好将所有vector
合并为一个vector
。 vector
vector
对我来说没有多大意义。