[英]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.