我有这样一个案例:
std::vector<4_integers> v;
什么最适合这里?
std::tuple
解决方案:
std::vector<std::tuple<int,int,int,int>> v;
std::array
解决方案:
std::vector<std::array<int,4>> v;
and why?
编辑(用例):
抱歉之前没有提到这一点。我将按如下方式使用它:
for(const auto& item:v){
some_function(item[0],item[1],item[2],item[3]); // or tuple equivalent
}
当然,我需要保存它们,因为计算 4 个整数并不是我想要一次又一次重复的事情。
对于这个具体案例,我不得不不同意这些评论。对于均质类型容器 - 就像这里的情况一样(所有int
s) - array
是优越的。
当查看界面时std::tuple http://en.cppreference.com/w/cpp/utility/tuple vs. std::array http://en.cppreference.com/w/cpp/container/array,很明显后者是一个容器(例如带有迭代器),而前者不是。这意味着标准库的其余部分将更自然地适用于后者。
如果类型不是同质的,那就不会有问题了——它必须是std::tuple
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)