最快的c ++ / stl算法,用于查找成对的字符串

时间:2015-03-24 15:36:27

标签: c++ algorithm c++11 stl

我正在寻找一种非常快速的算法来返回存储在像set<pair<string,string>>这样的集合中的对的值

更具体地说,我查找所有第二个值,其中first-value以字符串开头。

实施例: 我有一套这些配对:

<"asdf","qwer">,
<"asdfghj", "qwertyui">,
<"lkj","mno">

然后我用&#34; asdf&#34;来调用我的方法。我想要找回这些字符串的集合或向量:

"qwer"
"qwertyui"

谢谢!

1 个答案:

答案 0 :(得分:8)

您在std::set中存储对的事实意味着它们将按键排序。您可以使用std::set::lower_bound()查找第一个元素,该元素具有按字典顺序大于或等于搜索键的键,然后迭代直到该条件不再有效。