考虑一个带整数的二维向量,但最初只有一个元素:
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 );
或者只是第一行和第一列会增加一个元素?
答案 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"];
矢量
没有特殊情况