for(auto pair : records){
if (pair.first == 111) records.erase(pair.first);
}
大约就是这么一个逻辑,很简单的遍历,按照条件对元素进行erase操作。如果采用简单的auto遍历,载erase后会导致pair这边遍历出问题,出现core dump,内存读取的问题。
可能是迭代器失效了?还是erase后,没有迭代器迭代,导致红黑树的排序直接变了?
具体的原理没去查阅,期待大佬的解释
for(auto pair : records){
if (pair.first == 111) records.erase(pair.first);
}
大约就是这么一个逻辑,很简单的遍历,按照条件对元素进行erase操作。如果采用简单的auto遍历,载erase后会导致pair这边遍历出问题,出现core dump,内存读取的问题。
可能是迭代器失效了?还是erase后,没有迭代器迭代,导致红黑树的排序直接变了?
具体的原理没去查阅,期待大佬的解释