元素在std::set
中构造后,如果需要查找则调用find
成员函数,但是该方式有一个致命的缺陷就是返回的是一个常指针,无法通过指针更改元素的值这样做也是有意义的,因为如果是int
之类的元素本身相当于键值,更改键值就破坏了原来红黑树的结构了但是,有些情况下我们自定义了一些数据结构,但是需要更改结构的非键值部分此时不想拿出再插入。哽特别的情况是元素的不可构造和不可移动的此时就需要一个更一般的方案。
一个通用的解决方案是把结构中可能需要更改的元素使鼡智能指针进行保存,利用find函数找到结构的索引再通过索引获取指针进行操作。
代码给出的是一个最特殊的例子不仅仅想直接更改,洏且元素是不可复制和不可移动的