使用STL的C ++中的基本binary_search

时间:2012-08-02 12:25:45

标签: c++ stl binary-search

我正在玩一些STL算法。在使用binary_search时,我被卡住了。我已经对矢量字典&然后我通过编写自己的比较器函数来运行binary_search。但是每次打印输出都“未找到”。但是我搜索的字符串在向量中。任何帮助将不胜感激。

以下是摘录:

bool ownComparator(const string &a, const string &b){
   return lexicographical_compare(a.begin(),a.end(),b.begin(),b.end());

}
...
...
cout<<"Now using Binary Search to search in sorted array"<<endl;
string searchStr="will";
bool b = binary_search(dictionary.begin(),dictionary.end(),searchStr, ownComparator);
if(b) cout<<"Found";
else cout<<"Not Found";

2 个答案:

答案 0 :(得分:2)

得到了解决方案:当我用字符串searchStr =“will \ r”搜索时;它说,发现这意味着在从文件中读取时,逐行进入向量,\ r \ n会附加到字符串中。嗯傻错。

答案 1 :(得分:0)

cout&lt;&lt; “现在使用二进制搜索来搜索排序数组

排序数组是关键字。您的字符串不是排序数组。如果将字符串转换为已排序的数组,则会得到字母顺序字符串,例如“abbbcccddddd ...”。