我正在按照以下方式对字符串向量进行排序,以便以后可以对其进行二进制搜索。
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。
我可能做错了什么?
答案 0 :(得分:7)
看看这一行的最后一个字符:
if(!std::binary_search(vec.begin(),vec.end(),"SomeString"));
你在那里放错了;
。取下它并再次测试。