2013-03-16 93 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]。 (你可以改變矢量的大小)。