C++ 多维向量如何在内部生长
C++ How does a multi-dimensional vector grow internally?
考虑一个带有整数的二维向量,但最初只有一个元素:
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 );
还是只有第一行和第一列分别增加一个元素?
只有第一行会放大。向量全部组合在一起的事实并不会使它们一起放大。
如果要创建向量的向量,如果要增加每行的宽度,则需要增加每一行。
向量是一个单维容器 - 内容的细节是抽象的。这意味着,矢量应该对其内容一无所知。
std::vector< TYPE >
巧合的是,这意味着您可以使用一个也重载operator[]
的子容器,但不要误认为vector
本身支持 [][]。
std::vector< std::map< std::string, std::string > > foo;
foo[1]["hello"];
基本上是
std::map& fooMap = foo[1];
fooMap["hello"];
矢量没有特例
相关文章:
- 如何在公共头文件中向库的用户公开枚举,同时在内部使用它?
- std::strlen 在内部是如何工作的?
- STRCMP内部IF在内部不起作用
- "std::string"是否将其字符作为签名字符在内部存储?
- 虚拟基类在内部如何工作?编译器如何解析对基方法的调用?
- C++:在"try"外部创建的类型会导致错误,但在内部不会
- 访问说明符(私有/公共/受保护)如何在内部工作(限制成员访问)?
- 特征运算符如何在内部解释为 MKL 函数?
- 指向C++中成员的指针如何在内部工作?
- 删除和删除[]在内部如何工作?
- 自动参数如何在内部工作
- C++放置位置删除如何在内部(C++运行时)工作?如何克服其局限性?
- 在内部使用ComboBox拖动ListWidget项目
- 为什么实体可以在内部范围内重用?C++
- 如果不允许我分配 rvalues 来引用为什么以下代码片段有效,这在内部如何工作?
- 使用 java 类在 C++ 内部导入外部 jarfile
- 为 c++ 构建一个静态库,该库在内部依赖于第三方库
- 如何将负数转换为更广泛的类型在内部工作
- 在程序关闭后,是否可以在内部保存变量并读/写入
- C++ 多维向量如何在内部生长