是否建议在我的公共接口中指定例如vector <t>?

J C*_*per 5 c++ architecture

我是C++的新手,在编写课程时,我意识到我的一个方法是要求矢量矢量.应该这样做还是我应该重新考虑我班级的界面?(怎么样?)

neu*_*ont 7

我认为你使用什么容器没问题.你可以这样做

void func(std::vector<std::vector<int> > const& int_matrix);
Run Code Online (Sandbox Code Playgroud)

或者在C++ 11中,连续>不会被视为'>>',所以你也可以使用

void func(std::vector<std::vector<int>> const& int_matrix);
Run Code Online (Sandbox Code Playgroud)

但问题是,如果您的工作是作为二进制而不是源代码发布的,那么接口的用户应该具有与您相同的STL工具,否则可能会发生奇怪的运行时错误.因此在这种情况下使用STL容器作为接口是不合适的.您必须自己定义一些结构作为参数类型.