算法咨询:如何在插入到关联容器时,同时获得插入数据的位置?
我的需求如下:
用一个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),我觉得比较浪费。
但关联容器是基于二叉树实现的,查找插入的位置时,应该用的是二分法查找,找到插入位置时,的确又不能确定前面有多少个元素。
不知道有没有高手研究过这个问题?
用一个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),我觉得比较浪费。
但关联容器是基于二叉树实现的,查找插入的位置时,应该用的是二分法查找,找到插入位置时,的确又不能确定前面有多少个元素。
不知道有没有高手研究过这个问题?
...全文
相关推荐
校园导游咨询系统 数据结构
自己做的校园导游咨询系统,在VC6.0上运行,能够新建地图、加入景点、删除景点、删除两条景点之间道路、查找景点、一景点到其他景点的最短路径、一景点到另一景点的最短路线。 仅供借鉴!!
数据结构课程设计全国交通咨询模拟(附源码)
本系统使用了多种数据结构的算法,适合用来做课程设计
数据结构 交通咨询系统设计+源代码
采用C#开发,数据结构 交通咨询系统 源代码
全国交通咨询模拟数据结构课程设计.docx
全国交通咨询模拟数据结构课程设计.docx全国交通咨询模拟数据结构课程设计.docx
QQ空间里的QQ日志如何插入QQ在线咨询-.docx
QQ空间里的QQ日志如何插入QQ在线咨询-.docx


