c ++多个key/value对一个和相同的密钥
c++ Multiple key/value pairs for one and the same key
如果我想要这样的东西,我在 C++ 中有哪些不同的选择?
array = [];
array[] = ['id' => 2, 'name' => 'roger'];
array[] = ['id' => 3, 'name' => 'clark'];
我一直在四处寻找,确实找到了 map
,但它似乎不适用于同一个 key/index.[=13] 的多个 key/values =]
您可以尝试使用 std::pair
个值的向量(或数组)。它不完全是 key/value,但它允许您与普通 "keys" 成对。
有多种选择可能符合您的要求:
如果你只是想要一个维护映射的数据结构,你可以使用std::map
或std::unordered_map
。
如果你想要一个可以维护具有相同键的映射的数据结构,那么你可能想要使用std::multimap
.
如果你想要一个维护映射的数据结构,可以将单个键映射到多个值,你可以将你的值设置为 std::vector
, std::set
, std::unordered_set
或任何其他容器,取决于您的需要。例如,它可以是 std::map<int, std::vector<int>>
.
如果我想要这样的东西,我在 C++ 中有哪些不同的选择?
array = [];
array[] = ['id' => 2, 'name' => 'roger'];
array[] = ['id' => 3, 'name' => 'clark'];
我一直在四处寻找,确实找到了 map
,但它似乎不适用于同一个 key/index.[=13] 的多个 key/values =]
您可以尝试使用 std::pair
个值的向量(或数组)。它不完全是 key/value,但它允许您与普通 "keys" 成对。
有多种选择可能符合您的要求:
如果你只是想要一个维护映射的数据结构,你可以使用
std::map
或std::unordered_map
。如果你想要一个可以维护具有相同键的映射的数据结构,那么你可能想要使用
std::multimap
.如果你想要一个维护映射的数据结构,可以将单个键映射到多个值,你可以将你的值设置为
std::vector
,std::set
,std::unordered_set
或任何其他容器,取决于您的需要。例如,它可以是std::map<int, std::vector<int>>
.