如何填充和编辑 std::array 地图

SSB*_*SSB 1 c++ arrays stdmap stdvector stdarray

我有一组地图:

std::array<std::map<double, double>, 8> freqMap;
Run Code Online (Sandbox Code Playgroud)

填充它时,我需要在不同的数组索引处向地图添加条目。我知道我可以创建 8 个不同的地图,填充它们,然后将它们添加到数组中,但是是否可以直接在数组中将条目附加到地图?

例如,我如何将着手添加的映射条目key5.0,val3.3至数组索引2,然后添加另一条目数组索引3,然后附加另一条目索引2再次等。

我也可以使用std::vector地图,但仍然看不到以这种方式添加条目的方法。

这是一个例子。我正在从文件中读取数据并想直接更新我的数据结构:

while (fin >> arrayIdx >> key>> val)
    freqMaps[arrayIdx] = ??
Run Code Online (Sandbox Code Playgroud)

cig*_*ien 5

你可以简单地做:

while (fin >> arrayIdx >> key>> val)
  freqMaps[arrayIdx][key] = val;
Run Code Online (Sandbox Code Playgroud)

例如,我将如何将键 5.0、val 3.3 的映射条目添加到数组索引 2

freqMaps[2][5.0] = 3.3;
Run Code Online (Sandbox Code Playgroud)

这是一个演示

另外,请注意double在 a中使用as 键std::map不是一个好主意。