繁体   English   中英

C++:为另一个容器内的 std::vector 预留容量

[英]C++: Reserve capacity for a std::vector, which is inside another container

我有以下要求,

std::vector< std::vector < std::string > > segments;
有未知数量的段,但每个段的大小是固定的,比如 1000。但是,我无法弄清楚如何根据我的要求声明可变

我试过了
std::vector< std::vector < std::string >(1000) > segments; // not working

提前致谢..

std::vector是一个动态容器,不允许您指定固定大小。 作为替代方案,您可以查看Boost.Array (或 TR1 中的版本等):

typedef boost::array<std::string, 1000> Segment;
typedef std::vector<Segment> SegmentVec;
SegmentVec segments;

你不能。 您必须手动循环并调用reserve (就此而言, segments内还没有vector s ......如何在不存在的向量中保留空间?:))

只需分配一个具有 1000*segment 计数元素的向量,并使用 segment * 1000 作为其中的偏移量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM