Boost - Unuporded_set Учебник / Примеры / что-нибудь?
-
09-10-2019 - |
Вопрос
Я хотел бы использовать 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, которая также имеет некоторые образцы:
Я бы попробую использовать те же методы доступа, которые вы используете на std::set
или другие контейнеры, http://www.boost.org/doc/libs/1_37_0/doc/html/unordered.html. кажется, согласен.