新的C++11标准中,set的迭代器it有const修饰符,那么对它元素的修改就必然不能成功了。但是有时候遇到要修改stl set元素的问题,这个问题一般的解决方法是先erase这个元素,然后再insert。如果利用const_cast(*it)把it映射成一个引用的对象,那么就可以对它进行修改了。const_cast<node*>(&(*it))->b = 10;
时间: 2024-10-18 23:54:20
新的C++11标准中,set的迭代器it有const修饰符,那么对它元素的修改就必然不能成功了。但是有时候遇到要修改stl set元素的问题,这个问题一般的解决方法是先erase这个元素,然后再insert。如果利用const_cast(*it)把it映射成一个引用的对象,那么就可以对它进行修改了。const_cast<node*>(&(*it))->b = 10;