在向量上的二进制排序

Raj*_*war 0 c++ search

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

std::vector<std::string> vec;
...........
...........
std::sort(vec.begin(),vec.end());
Run Code Online (Sandbox Code Playgroud)

现在我正在搜索如下.

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

但是,似乎binary_search不起作用,并且它向向量中存在的"字符串"返回false.

我可能做错了什么?

Bla*_*ace 7

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

if(!std::binary_search(vec.begin(),vec.end(),"SomeString"));
Run Code Online (Sandbox Code Playgroud)

;那里放错了地方.将其取下并再次测试.

  • 啊,好的,我没有看到+1 (2认同)