2013-03-16 88 views
0

我怎样才能声明这样的矢量,像这样的vector<vector<string>>vec(1)(2)使用vec[0][0]vec[0][1]而不使用动态大小与push_back矢量矢量字符串固定大小

+0

“std :: vector”的大小可以在运行时扩展,并且不能用作多维数组。嵌套两个向量可以让您自由地为每个维度创建不同大小的子向量,这可能不是您想要的。看看[Boost.MultiArray](http://www.boost.org/doc/libs/1_53_0/libs/multi_array/doc/index.html),也许它会有所帮助。 – 2013-03-16 22:35:27

回答

5
using namespace std; 
array< array< string, 2 >, 1 > vec; 

std::vector是用于动态大小数组。
std::array(C++ 11,或使用Boost库)适用于固定大小的数组。

3
std::vector<std::vector<string>> vec(1, std::vector<string>(2)); 

然后你就可以访问vec[0][0]vec[0][1]。 (你可以改变矢量的大小)。