我有
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 吗?谢谢
在获取迭代器之前,您需要将键值对插入到多重映射中。
迭代器不能单独工作。如果您要存储来自多个不同多重映射的迭代器,您可能需要在列表中存储的不仅仅是一个迭代器。
也许:
a pair<multimap<std::string,std::string>::iterator, multimap<std::string,std::string>::iterator>
其中 first 是迭代器,second 是结束迭代器。
a pair<multimap<std::string,std::string>::iterator, multimap<std::string,std::string>*>
其中 first 是迭代器,second 是指向迭代器所属的 multimap 的指针。
一些其他类型的解决方案。
编辑:我同意 Mykola Golubyev 的观点:将迭代器存储较长时间通常不是一个好主意,因为迭代器可能会失效。
我是一名优秀的程序员,十分优秀!