算法咨询:如何在插入到关联容器时,同时获得插入数据的位置?

Dream_lover Dream_lover 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的需求如下:
用一个set记录每一次的插入数据,在插入当前数据的同时,还希望能获得当前插入数据在整个set中的位置。

目前能想到的方法:
inset(value);
//迭代
int index = 0;
SET::iterator ite = set.begin();
SET::iterator iteend = set.end();
while (ite != iteend && *ite != value)
{
++ite;
++index;
}

这个查找位置的算法时间复杂度为O(n),我觉得比较浪费。
但关联容器是基于二叉树实现的,查找插入的位置时,应该用的是二分法查找,找到插入位置时,的确又不能确定前面有多少个元素。

不知道有没有高手研究过这个问题?
...全文
评论 34
收藏 已收藏
分享
返回顶部
Dream_lover
C++ 语言 65,214 成员 250,514 内容