gpt4 book ai didi

C++:在不知道 key 的情况下插入 std::map

转载 作者:行者123 更新时间:2023-11-30 02:07:45 24 4
gpt4 key购买 nike

我需要将值插入到 std::map(或它的等价物)到任何空闲位置,然后获取它的键(稍后删除/修改)。像这样的东西:

std::map<int, std::string> myMap;
const int key = myMap.insert("hello");

是否可以使用 std::map 这样做,或者是否有一些合适的容器?

谢谢。

最佳答案

除了使用 set 之外,您还可以保留已分配(或空闲)的列表键,并在插入前找到一个新键。对于由以下索引的 mapint,你可以简单地获取最后一个元素,并增加它的键。但我宁愿选择一个简单的 std::vector;如果删除不是支持,你可以做一些简单的事情:

int key = myVector.size();
myVector.push_back( newEntry );

如果你需要支持删除,那么使用某种 vector “可能”类型(boost::optional 等——您可能已经有了一个在你的工具箱里,也许在 Fallible 或 Maybe 的名字下)可能是合适的。取决于使用模式(与条目总数等),您可能需要搜索 vector 以便重用条目。如果你真的雄心勃勃,你可以保留一张位图免费条目,每次删除和输入时设置一点,和每当您重新使用空间时重置它。

关于C++:在不知道 key 的情况下插入 std::map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7512823/

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