Giriş
Şu satırı dahil ederiz.
Şu satırı dahil ederiz.
#include<boost/multi_index/hashed_index.hpp>
Kolay kullanım için şu satırı dahil ederiz.
namespace mi = boost::multi_index;
std::unordered_multimap gibidir.
1.Cycle + Slot içinde gönderilen n tane mesaja bu anahtar değerler ile tekrar erişmek için kullandım.
const_mem_fun - Üye Metod
1.Cycle + Slot içinde gönderilen n tane mesaja bu anahtar değerler ile tekrar erişmek için kullandım.
const_mem_fun - Üye Metod
Şu satırı dahil ederiz.
#include<boost/multi_index/mem_fun.hpp>
Elimizde şöyle iki sınıf olsun
Tag ile kullanmak istersek şöyle yaparız.
Elimizdee bir yapı olsun.
Şöyle yaparız.
class Bar
{
int a, b;
};
class Foo
{
Bar ex;
public:
void setId(Bar a) {
ex = a;
};
virtual const Bar& getId() const {
return ex;
}
};
Şöyle yaparız. Metod imzasındaki donüş tipi birebir uygulanmalıdır. Dönüş tipi const ise const kullanılmalıdır.bi::multi_index_container<
StoreMe,
bi::indexed_by<
bi::hashed_non_unique<bi::const_mem_fun<Foo,const Bar&, &Foo::getId> > >
>;
Tag + const_mem_fun - Üye MetodTag ile kullanmak istersek şöyle yaparız.
bi::hashed_non_unique<
bi::tag<IndexByNonUniqueId>,
bi::const_mem_fun<StoredObj, std::string,&StoredObj::getNonUniqueIdString>
>
Tag + mem - Üye AlanElimizdee bir yapı olsun.
struct X
{
long long l; // assume unique
int i1; // assume unique
int i2; // assume non-unique
// plus any ohter data you have in your class X
};
Tag'lerimiz olsun.struct IndexByL {};
struct IndexByI1 {};
struct IndexByI2 {};
Şöyle yaparız.using Container = boost::multi_index_container<
X*, // the data type stored
boost::multi_index::indexed_by< // list of indexes
...,
boost::multi_index::hashed_non_unique< //hashed non-unique index over 'i2'
boost::multi_index::tag<IndexByI2>, // give that index a name
boost::multi_index::member<X, int, &X::i2> // what will be the index's key
>
>
>;
count metoduŞöyle yaparız.
Container c = ...;
// Look up by i2
auto& indexByI2 = c.get<IndexByI2>();
size_t numberOfHundreds = indexByI2.count(100);
Hiç yorum yok:
Yorum Gönder