1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#include <iostream>
#include <string>
#include <bobcat/binarysearch>
using namespace std;
struct Words
{
string str;
int value;
};
bool operator<(Words const &word, string const &str)
{
return word.str < str;
}
bool operator<(string const &str, Words const &word)
{
return str < word.str;
}
Words words[] =
{
{ "eight", 0 }, // alphabetically sorted number-names
{ "five", 0 },
{ "four", 0 },
{ "nine", 0 },
{ "one", 0 },
{ "seven", 0 },
{ "six", 0 },
{ "ten", 0 },
{ "three", 0 },
{ "two", 0 }
};
int main()
{
auto ret = FBB::binary_search(words, words + 10, "five",
[&](Words const &element, string const &value)
{
return element < value;
}
);
cout << (ret != words + 10 ? "found it" : "not present") << '\n';
}
|