Boost - unordered_set учебник / примеры / НИЧЕГО?
Я хотел бы использовать unordered_set
в проекте.
Однако документация к нему либо неполная, либо просто техническая справка, примеров нет.
Может ли кто-нибудь предоставить ссылки на онлайн-ресурсы, которые занимаются этим? Книги тоже приветствуются, желательно бесплатно. Поиск в Google ничего не дал.
Спасибо!
4 ответа
Там есть небольшие документы, потому что он ведет себя так же, как std::set
, за исключением того, что он требует функции хеширования и равенства вместо функции сравнения. Просто посмотрите примеры для std::set
и замените их std::unordered_set
и ты должен быть в порядке.
Если вам нужно написать функцию хеширования, в документах есть примеры, т.е.
Код для наиболее распространенного варианта использования:
#include <boost/unordered_set.hpp>
using boost::unordered_set;
using std::string;
using std::cout;
using std::endl;
int main (void)
{
// Initialize set
unordered_set<string> s;
s.insert("red");
s.insert("green");
s.insert("blue");
// Search for membership
if(s.find("red") != s.end())
cout << "found red" << endl;
if(s.find("purple") != s.end())
cout << "found purple" << endl;
if(s.find("blue") != s.end())
cout << "found blue" << endl;
return 0;
}
Выход
found red
found blue
Дополнительная информация
http://www.cplusplus.com/reference/unordered_set/unordered_set/find/
Контейнеры надстройки - это, по сути, реализация интерфейса, впервые определенного Техническим отчетом стандартной библиотеки C++ (известного как TR1), как упоминалось в документах наддува. Похоже, они уже являются частью рабочего проекта новых стандартов. Google выдает больше документации / примеров, если вы ищете tr1 и unordered_set. Мне нравится ссылка на MSDN, в которой также есть несколько примеров:
Я бы попробовал использовать те же методы доступа, которые вы используете на std::set
или другие контейнеры, http://www.boost.org/doc/libs/1_37_0/doc/html/unordered.html похоже, согласен.