c ++一个键和同一个键的多个键/值对

时间:2018-07-31 19:53:26

标签: c++ arrays key-value

如果我想要这样的话,我在c ++中有什么不同的选择?

array = [];
array[] = ['id' => 2, 'name' => 'roger'];
array[] = ['id' => 3, 'name' => 'clark'];

我一直在四处寻找,但确实找到了map,但它似乎不适用于同一个键/索引的多个键/值。

2 个答案:

答案 0 :(得分:2)

有多种选择可以满足您的要求:

  1. 如果仅需要维护映射的数据结构,则可以使用std::mapstd::unordered_map

  2. 如果您想要一个可以使用相同键维护映射的数据结构,则可能需要使用std::multimap

  3. 如果您想要一个数据结构来维护可以将单个键映射到多个值的映射,则可以将值设置为std::vectorstd::setstd::unordered_set或任何其他容器,取决于您的需要。例如,它可能是std::map<int, std::vector<int>>

答案 1 :(得分:-1)

您可以尝试使用std::pair值的向量(或数组)。它并不完全是键/值,但可以让您与常见的“键”配对。