gpt4 book ai didi

c++ - 将相同的键插入 std::map 时抛出异常

转载 作者:太空狗 更新时间:2023-10-29 23:51:49 24 4
gpt4 key购买 nike

我使用 VS2010,我注意到当我将一个键值对添加到 std::map 中时,如果相似的键已经在映射中,那么插入将被忽略。例如:

     std::string pipeName = "pipe1";
_pipes.insert(std::make_pair(pipeName,ppl));
_pipes.insert(std::make_pair(pipeName,ppl));

这个操作导致映射中只存储了一对。在这种情况下我想抛出一个异常。所以是的,如果键已经存在,我可以在插入之前进行比较,但是 std::map 可以吗强行扔了?

最佳答案

您可以检查返回值并自己抛出异常:

auto p = _pipes.insert(std::make_pair(pipeName,ppl));
if (!p.second)
{
// insert failed, throw something
}

显然,这可以包装在辅助函数或类中。

关于c++ - 将相同的键插入 std::map 时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18677171/

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