hash - int
Şöyle yaparız.
Şu satırı dahil ederiz.
boost ile tüm STL sınıfları için hash desteği gelmiyor. Şu satırı dahil ederiz.
std::unordered_set için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
int id = ...;
std::size_t hash_value = boost::hash<int>()(id);
hash_combine metoduŞu satırı dahil ederiz.
#include <boost/functional/hash.hpp> /* hash_combine */
Şöyle yaparız.std::vector<T> v = ...
using boost::hash_value;
using boost::hash_combine;
// Start with a hash value of 0
std::size_t seed = 0;
T value;
for (int i=0; i< in.size(); i++)
{
value = static_cast<T>(in[i]);
hash_combine(seed, hash_value(value));
}
return seed;
hash_range metoduboost ile tüm STL sınıfları için hash desteği gelmiyor. Şu satırı dahil ederiz.
#include <boost/functional/hash/hash_fwd.hpp>
Örnekstd::unordered_set için şöyle yaparız.
namespace boost
{
template <class K, class C, class A>
std::size_t hash_value (const std::unordered_set<K, C, A>& v)
{
return boost::hash_range(v.begin(), v.end());
}
} // namespace boost
ÖrnekŞöyle yaparız.
template <typename T> struct hash_bin {
size_t operator()(const T &t) const {
return boost::hash_range(t.backend().limbs(), t.backend().limbs()+t.backend().size());
}
};
using bmp::cpp_int;
boost::unordered_map<cpp_int, cpp_int, hash_bin<cpp_int> > mp;
Hiç yorum yok:
Yorum Gönder