首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vector如何实现快速查找

2012-03-28 
vector怎么实现快速查找数据结构如下:C/C++ codeclass Userinfo{string userid,string username,string us

vector怎么实现快速查找
数据结构如下:

C/C++ code
class Userinfo{    string userid,    string username,    string userotherinfo};vector<Userinfo>  userList;


现在的问题是,希望在一个这样的vector里面,根据输入条件进行快速查找元素

条件可能是userid或者username或者userotherinfo中任意一个 (例如查找username为xxx的元素,结果可能有多个)

并且userotherinfo查找时经常是匹配前几个字符的查找(类似数据库like,例如 userotherinfo like 'XX%')

-----------------------------------------------
这个问题,有点像数据库的索引单表查询,不知道有没有什么好的解决方法

[解决办法]
那就别用vector啊,map或者set是红黑树,查找log n
[解决办法]
最快的就是哈希查找
不过建哈希表有点麻烦
[解决办法]
如果目的是直接查找的话,不如用关联容器啊。还有个建议就是直接用sqlite的memory database,用法和phisical database完全一样,唯一不同是建立在内存里,操作效率相当高,我处理大数据一直都这么干。
[解决办法]
用三个vector来保存他的迭代器吧。然后分别按照三个成员对三个vector进行排序,最后是用二分查找来查。复杂度log(n)

热点排行