C++ 迭代器失效 ++报错

迭代器失效,迭代器++报错

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f5a4be6ffb4 in std::_Rb_tree_increment(std::_Rb_tree_node_base*) () from /usrb/x86_64-linux-gnubstdc++.so.6
[Current thread is 1 (Thread 0x7f5a362f4700 (LWP 45441))]
(gdb) where
#0  0x00007f5a4be6ffb4 in std::_Rb_tree_increment(std::_Rb_tree_node_base*) () from /usrb/x86_64-linux-gnubstdc++.so.6
#1  0x0000559cce8be9c8 in std::_Rb_tree_iterator<.....>::operator++ (this=<synthetic pointer>)
    at /usr/include/c++/7/bitsl_tree.h:295

原因:

在用迭代器执行erase,insert等函数时,迭代器的指针会被释放掉,从而不能继续使用,如果继续使用,则会报错

加锁

猜你喜欢

转载自blog.csdn.net/u013288190/article/details/128513757