![]() |
1
3
如果你想节省内存,不要使用
这么说,并回答你的问题:从地图上删除一个元素
invalidates iterators
而ranged for循环实际上是基于迭代器的。所以-在循环期间不能删除。使用
如果你的内存非常有限,以至于你不能同时拥有完整的映射和完整的列表,那么你只是使用了错误的数据结构——正如我所说,这两种结构都是非常浪费的。不过,如果你坚持,你可以反复插入
|
![]() |
2
1
正如yussuf所评论的,您可以在 https://stackoverflow.com/a/8234813/1142788 . 我已经把它改编成我的例子。(需要C++ 11的支持)
|
![]() |
3
0
你可以考虑储存
|
![]() |
Bob · BFS用映射C替换数组++ 6 年前 |
![]() |
aghast · 如何在std::map中放置POD结构? 7 年前 |
![]() |
killer · 地图声明未编译[重复] 7 年前 |
![]() |
ksl · 在类声明中初始化常量成员变量时,调试模式中出现异常 7 年前 |
![]() |
Ahmed Atteya · C++std::map在未找到键时添加值 7 年前 |
![]() |
Leo Lai · std::map中的基元类型值是否已初始化? 8 年前 |
|
user6421810 · C++映射未正确插入 8 年前 |
![]() |
user3794186 · C++std::map保存任意类型的值 10 年前 |