[英]Automatically re-sorting tree
有没有一种方法可以让树自动重新排序其元素,或者在调用某些方法时(而不是在插入新元素时)?
我想要一棵树,即一组像这样的小结构:
struct item
{
int value;
};
集合:
set<item> items;
auto p = items.insert(...);
而且我想有一张地图,其中包含迭代器,该迭代器用于保存集合中的项目:
map<name, items::iterator> items_map;
items_map["abc"] = p.first;
一段时间后,我想在地图上进行查找,并获得指向set中保持的项目的指针以增加其值。
auto iter = items_map["abc"];
iter->value++;
现在,我希望该集合自动重新排列,使其反映更新后的值,我的意思是我希望该集合自动对其自身进行排序(或在调用某些方法之后)。
有没有办法使用STL中的当前容器执行此操作?
我想在地图上进行查找,并获取指向该项目的指针以增加其值。
有没有办法使用STL中的当前容器执行此操作?
不能std::set
元素不能修改。 因此,迭代器是常量,因此您无法使用它们来修改元素。
实现类似效果的简单方法是删除旧元素,然后插入修改后的副本。 但是,任何以前指向旧元素的迭代器都将通过删除元素而无效,并且不会指向修改后的元素。
有没有一种方法可以让树自动重新排序其元素,或者在调用某些方法时(而不是在插入新元素时)?
可以,但是标准库中没有这样的结构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.