最快的 c++/stl 算法在成对的集合中查找字符串

fastest c++ / stl algorithm to find strings in set of pairs

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

更具体地说,我寻找所有第二个值,其中第一个值以字符串开头。

示例: 我有一套这些:

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

然后我用 "asdf" 调用我的方法,我想取回这些字符串的集合或向量:

"qwer"
"qwertyui"

谢谢!

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