开发者

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

I'm new to C++, and while writing a class I realized one of my开发者_JAVA技巧 methods was asking for a vector-of-vectors. Should this be done or should I rethink my class's interface? (How?)


I think it is no problem what container you use. You could do it like

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

or in C++11, successive > won't be considered as '>>' so you could also use

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

But the problem is, if your work are published as binary instead of source code, the users of the interface should have the same STL implement as yours, otherwise strange runtime errors may occur. So use STL container as interface is not proper in this situation. You have to define some structures yourself as the type of parameters.


A vector of vectors isn't necessarily a bad thing. If you need something like a multidimensional array, then you need what you need. (Just make sure you pass the vector by [const] reference).

You might want to change the title of your question though, because the title says "vector<T>" (boldness because it thinks it's an HTML tag) but your question asks about a vector of vectors.


IMO, if possible it's better to merge all the vectors into a single vector. Having vector of vector doesn't make much sense to me.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜