gpt4 book ai didi

c++ - 如何将 C++ std::list 元素转换为 multimap 迭代器

转载 作者:太空宇宙 更新时间:2023-11-04 15:55:04 24 4
gpt4 key购买 nike

我有

std::list<multimap<std::string,std::string>::iterator> >

现在我有了新元素:

multimap<std::string,std::string>::value_type aNewMmapValue("foo1","test")

我想避免设置 temp multimap 并插入新元素只是为了取回它的迭代器所以我可以把它推回:

std::list<multimap<std::string,std::string>::iterator> >

我能以某种方式避免创建临时 multimap 吗?谢谢

最佳答案

在获取迭代器之前,您需要将键值对插入到多重映射中。

迭代器不能单独工作。如果您要存储来自多个不同多重映射的迭代器,您可能需要在列表中存储的不仅仅是一个迭代器。

也许:

  1. a pair<multimap<std::string,std::string>::iterator, multimap<std::string,std::string>::iterator>其中 first 是迭代器,second 是结束迭代器。

  2. a pair<multimap<std::string,std::string>::iterator, multimap<std::string,std::string>*>其中 first 是迭代器,second 是指向迭代器所属的 multimap 的指针。

  3. 一些其他类型的解决方案。

编辑:我同意 Mykola Golubyev 的观点:将迭代器存储较长时间通常不是一个好主意,因为迭代器可能会失效。

关于c++ - 如何将 C++ std::list 元素转换为 multimap 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/672729/

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