2013-10-21 81 views
0

我按照以下方式排序我的字符串矢量,以便以後可以用binary_search。在矢量上的二進制排序

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不能正常工作,並返回一個錯誤,以存在於向量中的「弦」。

我會做什麼錯?

+0

'vec'的內容是什麼? – P0W

+0

將代碼發佈到您正在執行此操作的位置。 – Kunal

+0

向量的內容是字符串'std :: vector vec'; – Rajeshwar

回答

7

只看該行的最後一個字符:

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

你有一個錯位的;那裏。刪除它並再次測試。

+2

啊,好的一個,我沒有看到+1 – P0W

+0

我看到了 - 感謝您指出它 - 標記爲答案 – Rajeshwar