最快的 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()
查找第一个元素,该元素的键在字典序上大于或等于您的搜索键,然后迭代直到该条件不再有效。
我正在寻找一种非常快速的算法来 return 存储在像这样的集合中的对的值 set<pair<string,string>>
更具体地说,我寻找所有第二个值,其中第一个值以字符串开头。
示例: 我有一套这些:
<"asdf","qwer">,
<"asdfghj", "qwertyui">,
<"lkj","mno">
然后我用 "asdf" 调用我的方法,我想取回这些字符串的集合或向量:
"qwer"
"qwertyui"
谢谢!
您将这些对存储在 std::set
中这一事实意味着它们已经按键排序。您可以使用 std::set::lower_bound()
查找第一个元素,该元素的键在字典序上大于或等于您的搜索键,然后迭代直到该条件不再有效。