Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Hashing

Boost , Chapter 1. Fusion 2.2 , Operator

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Автоматически создать<boost::hash>соответствующую<hash_value>функцию.

Synopsis
template <typename Seq>
std::size_t
hash_value(Seq const& seq);
Parameters

Параметр

Требование

Описание

<seq>

Последовательность

Последовательностьдля вычисления значения хэша

Тип возврата:<std::size_t>

Требования:

Для каждого элемента<e>в последовательности<seq>,<hash_value(seq)>является допустимым выражением, возвращающим тип, который преобразуется в<std::size_t>.

Семантика: Возвращает комбинированное значение хэша для всех элементов<seq>.

Header
#include <boost/fusion/sequence/hash.hpp>
#include <boost/fusion/include/hash.hpp>
Example
#include <boost/fusion/include/equal_to.hpp>
#include <boost/fusion/include/hash.hpp>
#include <boost/fusion/include/vector.hpp>
#include <boost/unordered_map.hpp>
void foo()
{
    typedef boost::fusion::vector<int, std::string, char> Vec;
    const Vec v = {42, "Hello World", 't'};
    // Compute a hash value directly.
    std::cout << "hash_value(v) = " << boost::fusion::hash_value(v) << '\n';
    // Or use it to create an unordered_map.
    boost::unordered_map<Vec, bool> map;
    map[v] = true;
    assert(map.size() == 1 && map.count(v) == 1);
}
Example
#include <boost/fusion/include/define_struct.hpp>
#include <boost/fusion/include/equal_to.hpp>
#include <boost/fusion/include/hash.hpp>
#include <boost/unordered_set.hpp>
// We would like to define a struct that we can form unordered_sets of.
BOOST_FUSION_DEFINE_STRUCT(
    (demo), Key,
    (bool, b)
    (std::string, s)
    (int, i)
)
namespace demo {
    // Make operator== and hash_value ADL accessible.
    using boost::fusion::operator==;
    using boost::fusion::hash_value;
    typedef boost::unordered_set<demo::Key> Set;
}
void foo()
{
    demo::Set set;
    demo::Key key;
    assert(set.count(key) == 0);
}
See also

Boost.Functional/Hash


PrevUpHomeNext

Статья Hashing раздела Chapter 1. Fusion 2.2 Operator может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Operator ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:42:42/0.0053567886352539/1