0

我正在按以下方式对字符串向量进行排序,以便以后可以对其进行二进制搜索。

std::vector<std::string> vec;
...........
...........
std::sort(vec.begin(),vec.end());

现在我正在搜索它如下。

if (!std::binary_search(vec.begin(), vec.end(), "SomeString"));
{
    //Not Found
}
else
{
    //Found
}

但是,binary_search 似乎不起作用,它向向量中存在的“字符串”返回 false。

我可能做错了什么?

4

1 回答 1

7

看看这一行的最后一个字符:

if(!std::binary_search(vec.begin(),vec.end(),"SomeString"));

你有一个放错;地方。删除它并再次测试。

于 2013-10-21T17:59:10.973 回答