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

Is it recommended to specify e.g. vector<t> in my public interface?

本文关键字:接口 向量 我的 lt gt 是否      更新时间:2023-10-16

我是c++新手,在编写一个类时,我意识到我的一个方法要求向量的向量。应该这样做还是应该重新考虑类的接口?(如何?)

我认为你用什么容器都没有问题。你可以这样写

void func(std::vector<std::vector<int> > const& int_matrix);

或者在c++ 11中,连续的>不会被认为是'>>',所以你也可以使用

void func(std::vector<std::vector<int>> const& int_matrix);

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

向量的向量不一定是坏事。如果您需要像多维数组这样的东西,那么您就需要所需的东西。(只需确保通过[const]引用传递vector)。

你可能想改变你的问题的标题,因为标题是"vector<<b>T>"(粗体,因为它认为这是一个HTML标签)但你的问题是关于向量的向量。

IMO,如果可能的话,最好将所有vector合并为单个vector。有vectorvector对我来说没有多大意义。