3

考虑一个带有整数的二维向量,但最初只有一个元素:

std::vector< std::vector <int> > vec( 1, std::vector<int>( 1, 0 ) );

现在我想让向量在两个维度上都更大,以便向量总是在 amxm 矩阵中产生。

以下两个命令是否会这样做:

vec.push_back( std::vector<int> );
vec[0].push_back( 0 );

还是只会将第一行和第一列分别增加一个元素?

4

3 回答 3

1

只有第一行会放大。向量都组合在一起的事实不会使它们一起放大。

于 2013-11-05T19:13:34.330 回答
1

如果您正在创建向量的向量,如果您希望每行的宽度增加,则需要增加每一行....

于 2013-11-05T19:15:42.657 回答
1

向量是一维容器——内容的细节是抽象的。这意味着,向量应该对它的内容一无所知。

std::vector< TYPE >

巧合的是,这意味着您可以使用也重载的子容器operator[],但不要误认为vector 它本身支持 [][]。

std::vector< std::map< std::string, std::string > > foo;
foo[1]["hello"];

基本上是

std::map& fooMap = foo[1];
fooMap["hello"];

向量没有特殊情况

于 2013-11-05T20:14:49.703 回答