Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/multi_index/sequenced_index.hpp>
Tanımlama - tag kullanmayanŞöyle yaparız.
namespace bmi = boost::multi_index;
using Index = bmi::multi_index_container<char,
bmi::indexed_by<
bmi::sequenced<>,
bmi::ordered_unique<bmi::tag<struct unique>, bmi::identity<char> >
>
> ;
Bu indeks'e şu şekilde erişmeyeceğim anlamına gelir.auto& u = container.get<unique>();
Tanımlama - tag kullanan
Şöyle yaparız.
// multi index tags
struct seq {};
typedef boost::multi_index::multi_index_container<
MyClass,
boost::multi_index::indexed_by<
boost::multi_index::sequenced<boost::multi_index::tag<seq> >,
...
>
> my_list;
C++11 kullansak ta kullanmasak ta bence indeksler için typedef yapmak iyi bir fikir.
typedef boost::multi_index::index<my_list, seq>::type seq_index;
push_back metodu
Bir pair döner.
push_front metodu
Bir pair döner.
Şöyle kullanılır.
Bir pair döner.
push_front metodu
Bir pair döner.
std::pair<typename my_list::iterator, bool> ret = mylist.push_front(item);
if (!ret.second) {
//item exists
...
}
pop_back metoduŞöyle kullanılır.
mylist.pop_back();
pop_front metodu
Örnek ver
relocate
Elemanı başka bir konuma taşırlar. LRU Cache örneğinde eleman en sona taşınıyor.
Örnek ver
relocate
Elemanı başka bir konuma taşırlar. LRU Cache örneğinde eleman en sona taşınıyor.
Hiç yorum yok:
Yorum Gönder