C ++多维向量如何在内部增长?

时间:2013-11-05 19:10:44

标签: c++ vector matrix

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

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

现在我想让两个维度中的向量变大,这样向量结果总是在m x m矩阵中。

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

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

或者只是第一行和第一列会增加一个元素?

3 个答案:

答案 0 :(得分:1)

只有第一行会放大。矢量全部组合在一起的事实并不能使它们一起放大。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

std::vector< TYPE >

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

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

基本上是

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

矢量

没有特殊情况