如何快速高效的查找字符串???

wangsiyuanoo 2013-08-16 09:48:50
struct stInfo
{
string strName;
}
map<int, stInfo*> testMap; //假如已经存了十万个数据
string strSub = "木"; //要求stInfo.strName里含有"木"字

map<int, stInfo*>::iterator itFind = testMap.begin();
map<int, stInfo*>::iterator itEnd = testMap.end()
stInfo *pInfo = NULL;
string strName = "";
for ( ; itFind != itEnd ; ++itFind )
{
pInfo = itFind.second;
strName = pInfo.strName;
//找出含有strSub子字符串的strName父字符串
//求一个快速高效的方法!!!
}

...全文
233 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
team79 2013-08-16
  • 打赏
  • 举报
回复
KMP算法么。。。。。。
taodm 2013-08-16
  • 打赏
  • 举报
回复
你应该用字典树(trie树)
wangsiyuanoo 2013-08-16
  • 打赏
  • 举报
回复
引用 1 楼 taodm 的回复:
那就不要用map
不能用数组 因为是动态的 用boost应该会在循环遍历上快 但字符串的查找呢?
taodm 2013-08-16
  • 打赏
  • 举报
回复
那就不要用map

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧