我有以下要求,
std::vector< std::vector < std::string > > segments;
存在未知数量的段,但每个段的大小固定为1000.但是,我无法弄清楚如何根据我的要求声明变量段。
我试过了
std::vector< std::vector < std::string >(1000) > segments; // not working
提前致谢..
答案 0 :(得分:5)
std::vector
是一个动态容器,不允许您指定固定大小。作为替代方案,您可以查看Boost.Array(或TR1中的版本等):
typedef boost::array<std::string, 1000> Segment;
typedef std::vector<Segment> SegmentVec;
SegmentVec segments;
答案 1 :(得分:2)
你做不到。您必须循环并手动调用reserve
。 (就此而言,vector
内部还没有segments
..如何在不存在的向量中保留空间?:))
答案 2 :(得分:1)
只需使用1000 *段计数元素分配单个向量,并使用segment * 1000作为其中的偏移量。