C++2D矢量映射
C++ 2D vector maps
首先,我知道这个问题已经被问了很多次,但我需要澄清和理解一些事情。此外,我仍在学习c++,目前是从一本书和教程中学习的,所以不要苛刻:)
如何在代码中定义并修改平台生成器的2D地图?我了解基本的多维数组,但我真的不能使用它们,因为我的地图的大小会改变很多。我可以使用向量中的一个向量,但据我所知,这不再是一个矩形网格,它更像。。。
x x x x x x x x x x
x x . . . . .
x x . . . . .
x x x x x x x x x x
其中x是平铺,space是空气平铺,并且不分配点。不是网格!
我还对数组的指针是如何工作的感到困惑。
很抱歉我在这里有点麻烦,我还在努力解决问题。
任何帮助都将不胜感激!
如果你需要一个简单的可调整大小的矩阵类,我肯定会选择一个向量的向量。您总是可以自己将其封装到Matrix
类中(也许可以通过模板化维度/类型)
struct Tile {
int whatever = 0;
};
int main() {
std::vector<std::vector<Tile>> m;
m.resize(10);
for(auto& v : m)
v.resize(10);
// Print a 10x10 0-initialized matrix
for(auto& v : m) {
for(auto& elements : v)
std::cout << elements.whatever << " ";
std::cout << std::endl;
}
}
实时示例
向量中的内存是连续分配的,没有"洞"。无论如何,如果调整内部向量的大小,则必须保持内部向量的维度同步。
如果你认为这对你的想法来说太多了,请使用Matrix增强BLAS功能。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 2D数组来自文本输入,中间有空格
- 将值指定给向量(2D)的向量中的某个位置
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- 如何使用用户输入在C++中正确填充2D数组
- 当类包含 2D 数组时,如何将类用作映射的键
- 将2D图像映射到3D纹理
- C++2D矢量映射
- 内存映射2D阵列使用boost
- 2d(3d)坐标的哈希映射(即双精度向量)
- 2D纹理或立方体映射
- 2D数组可以作为映射的键吗?
- 将2D数组映射到CUDA中的RGB到GreyScale程序中的块网格
- 2D 数组映射与 if 语句 C++
- 如何在 C++ 中映射 1D 数组中的 2D 数组