gpt4 book ai didi

c++ - 如何为嵌套映射分配值

转载 作者:行者123 更新时间:2023-12-03 07:01:14 28 4
gpt4 key购买 nike

我有一个嵌套在另一个 map 内的 map ,我想为外部 map 分配值,但我不太确定该怎么做。这会导致程序在开始之前就收支平衡。当我运行它时,我没有显示任何错误

map<int, map<int, int>> outer;
map<int, int> inner;


outer.emplace(1, make_pair(2, 1));
outer.emplace(2, make_pair(2, 1));
outer.emplace(3, make_pair(2, 1));

outer.emplace(1, make_pair(3, 1));

任何帮助都会有所帮助,谢谢

最佳答案

嗯,外部 map 的mapped_type是map<int, int> ,但您试图用 pair<int, int> 来构造它。你可以尝试类似的事情

outer.emplace(1, map<int,int>{ { 2, 1 } });
outer.emplace(2, map<int,int>{ { 2, 1 } });
outer.emplace(3, map<int,int>{ { 2, 1 } });

outer.emplace(1, map<int,int>{ { 3, 1 } });

这有一个缺点,那就是它很难看,甚至可能不是你想要的:最后一行没有效果,因为键 1 已经有一个值。 ,并且 emplace 在这种情况下没有效果。如果您想添加条目 { 3, 1 }到第一个内部 map ,这样它现在包含 { { 2, 1 }, { 3, 1 } } ,您可以使用以下构造,恕我直言,它看起来更好:

outer[1].emplace(2, 1);
outer[2].emplace(2, 1);
outer[3].emplace(2, 1);

outer[1].emplace(3, 1);

关于c++ - 如何为嵌套映射分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736311/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com