声明一个无符号int和一个数组的无序映射(将具有不同的大小)

Declaring an unordered_map of an unsigned int and an array (will have different sizes)?

本文关键字:一个 数组 int 无符号 声明 无序 映射      更新时间:2023-10-16

为了完整起见,请忽略我放在那里的unsigned int。无论如何,我的问题是,如果我想在unordered_map中存储不同大小的数组,我该如何声明它

我在这里找到了一个相关的答案:在双阵列上使用无序映射

然而,该人士表示,数组的大小也必须声明(据我所知,数组在unordered_map中只能具有相同的大小)。有没有一种方法可以实现我想要实现的目标?

更新。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

我用"easygl"来画一些东西,它们的一个函数fillpoly需要一个点数组来画多边形。我试着传递一个矢量,但没有成功。所以我决定用一个数组来代替,结果结果很糟糕。

如果需要不同大小的数组,通常使用std::vector<>。

因此,您要查找的数据类型(从unsigned int到std::vector<>的哈希表,其中包含…t_point…)看起来像这样:

typedef std::unordered_map<unsigned int, std::vector<t_point> > MyHashTable;

如果你有一个遗留的C++/C api,它需要一个普通的t_point数组,你可以用这样的向量来调用它:

void Foo( t_point* array, size_t length );
std::vector<t_point> vec;
vec.push_back(t_point()); // just so our array is not empty...
Foo( &vec[0], vec.length() );
相关文章: