Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;_C++_Hashmap_Dynamic Memory Allocation - Fatal编程技术网

C++ C++;

C++ C++;,c++,hashmap,dynamic-memory-allocation,C++,Hashmap,Dynamic Memory Allocation,在我正在编写的程序中,我需要使用如下结构: static std::unordered_map<size_t, int> map[N][M]; static std::无序映射[N][M]; 问题是我需要动态生成地图的大小,因此我将定义: static std::unordered_map<size_t, int> **map static std::无序映射**映射 但我在分配上有问题。有什么建议吗 谢谢您只需要分配N*sizeof(std::unordered

在我正在编写的程序中,我需要使用如下结构:

static std::unordered_map<size_t, int> map[N][M];
static std::无序映射[N][M];
问题是我需要动态生成地图的大小,因此我将定义:

static std::unordered_map<size_t, int> **map
static std::无序映射**映射
但我在分配上有问题。有什么建议吗


谢谢

您只需要分配
N*sizeof(std::unordered\u map*)的空间
您只需要分配
N*sizeof(std::unordered\u map*)的空间
我建议您使用
std::vector
来管理阵列。您可以创建一个向量向量,如下所示:

std::vector<std::vector<std::unordered_map<size_t, int>>> map(M, std::vector<std::unordered_map<size_t, int>>(N));

for(int m = 0; m < M; ++m)
{
    for(int n = 0; n < N; ++n)
    {
        map[m][n].emplace(0, 1);
    }
}

我建议您使用
std::vector
来管理阵列。您可以创建一个向量向量,如下所示:

std::vector<std::vector<std::unordered_map<size_t, int>>> map(M, std::vector<std::unordered_map<size_t, int>>(N));

for(int m = 0; m < M; ++m)
{
    for(int n = 0; n < N; ++n)
    {
        map[m][n].emplace(0, 1);
    }
}

有什么问题吗?至于你当前的指针问题,请学习如何创建一个。有什么问题吗?至于你当前的指针问题,请学习如何创建一个。只是对这个答案的一个小补充-如果你在编译时知道数组的大小,我建议使用std::array而不是vector。这样,编译器可以对代码进行更好的优化。在这种情况下,我知道运行时的大小。使用向量方法,我找到了一个解决方案<代码>静态标准::矢量图
map.resize(列的数量,标准::向量(行的数量))
@Chaosit添加了一条注释。这只是对答案的一个小补充-如果您在编译时知道数组的大小,我建议使用std::array而不是vector。这样,编译器可以对代码进行更好的优化。在这种情况下,我知道运行时的大小。使用向量方法,我找到了一个解决方案<代码>静态标准::矢量图
map.resize(列的数量,标准::向量(行的数量))
@Chaosit添加了一条评论。