Boost - unordered_set учебник / примеры / НИЧЕГО? - PullRequest
9 голосов
/ 12 декабря 2010

Я бы хотел использовать unordered_set в проекте.

Однако документация к нему либо неполная, либо просто техническая справка, примеров нет.

Может ли кто-нибудь предоставить ссылки на онлайн-ресурсы, которые занимаются этим? Книги тоже приветствуются, желательно бесплатно. Поиск в Google ничего не дал.

Спасибо!

Ответы [ 4 ]

9 голосов
/ 22 декабря 2012

Код для наиболее распространенного варианта использования:

#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/

7 голосов
/ 12 декабря 2010

На нем мало документов, потому что он ведет себя точно так же, как std::set, за исключением того, что для него требуется функция хеширования и равенства вместо функции сравнения.Просто найдите примеры для std::set и замените их на std::unordered_set, и все будет в порядке.

Если вам нужно написать функцию хеширования, в документации есть примерыто есть это .

4 голосов
/ 12 декабря 2010

Контейнеры надстройки по сути являются реализацией интерфейса, впервые заданного Техническим отчетом стандартной библиотеки C ++ (известного как TR1), как упоминалось в документах наддува.Похоже, они уже являются частью рабочего проекта новых стандартов.Google выдает больше документации / примеров, если вы ищете tr1 и unordered_set.Мне нравится ссылка на MSDN, в которой также есть несколько примеров:

http://msdn.microsoft.com/en-us/library/bb982739.aspx

http://www.google.de/search?q=tr1+unordered_set

2 голосов
/ 12 декабря 2010

Я бы попробовал использовать те же методы доступа, которые вы используете для std::set или других контейнеров, http://www.boost.org/doc/libs/1_37_0/doc/html/unordered.html, похоже, согласен.

...