c++ - C++ 中的二维 vector

标签 c++ vector

嘿,我对创建字符的二维 vector 感到好奇,所以我知道它是 vector 中的 vector ,我想将所有值初始化为“,”。

所以我知道这么多我相信

vector<vector<char>> spaceStation();

我猜列和行放在括号中,但我不确定。

谢谢!

最佳答案

如果它是您正在寻找的 nxn 或 nxm 二维矩阵,其中 n 和 m 可以在创建矩阵之前确定(即使是在运行时),那么 vector 的 vector 可能不是最有效的方法去做。在内部, vector 增长的方式是在当前分配的空间被填满时分配更大的内存,并将所有现有数据移动到新位置。类似地,插入新的第一行将需要所有 vector 向下移动,这反过来会导致复制所有其他 vector 及其元素。

如果您知道 n,m,即使它是在运行时,您也可以使用单个 vector (大小为 n^2 或 nxm)分配一大块内存,并在逻辑上将元素作为 vector (a[i] [j] 将是 vector[i*n + j]) 从而有效地管理单个内存块。

关于c++ - C++ 中的二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19018636/

相关文章:

c++ - 用动态数组模拟的单链表

r - 在 R 中,如何用另一个向量的值替换具有特定条件的矩阵中的值?

java - 如何解释和使用通用 vector ?

c++ - "structured bindings"与 "decomposition declarations"

c++ - 从 C++ 中的整数集合中确定第三个四分位数?

c++ - priority_queue::emplace 调用 push_heap?

c++ - 从 c++ std::vector 中删除所有项目

c++ - 如何正确地将 OpenCV 库链接到 Windows 上的 Eclipse?

c++ - 非逻辑代码流/无效 vector 操作

java - Vector<Customer> C++、List<Customer> 和 Vector<Customer> Java