Вопрос

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

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

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

Спасибо!

Это было полезно?

Решение

На нем мало документов, потому что он ведет себя точно так же 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/

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top