照着抄会直接报错, 后来我排查了很久才发现问题所在
问题排查
报错原因是这样的(手动分行)
No viable conversion from returned value of type
'std::_List_const_iterator<std::_List_val<std::_List_simple_types<std::pair<int, std::basic_string<char>>>>>'
to function return type 'typename list<bucket_value>::iterator'
(aka '_List_iterator<_List_val<std::_List_simple_types<std::pair<int, std::basic_string<char>>>>>')
把第二行和第四行的类型提取出来, 可以看到大概意思应该是说不能把const的迭代器转为非const的迭代器
'std::_List_const_iterator<std::_List_val<std::_List_simple_types<std::pair<int, std::basic_string<char>>>>>'
________________'_List_iterator<_List_val<std::_List_simple_types<std::pair<int, std::basic_string<char>>>>>'
首先, 查看list的源码可以看到list::begi