8 Nisan 2017 Cumartesi

multi_index random_access Sınıfı

Giriş
Şu satırı dahil ederiz.
#include <boost/multi_index/random_access_index.hpp>
std::vector gibi gibidir. Şu satırı dahil ederiz.
namespace bi = boost::multi_index;
Tag
Şöyle yaparız.
boost::multi_index_container<
  Foo,
  bi::indexed_by<
    bi::random_access<bii::tag<struct ByRnd> >
  >
>;
begin ve end metodları
Şöyle yaparız.
auto pos = std::find_if(container.begin(), container.end(), 
                        [](Foo const* p) { return ... }
if(pos == container.end())
    // Not found.
rearrange metodu
set ile vector'ün aynı sırada olmasını sağlar.
ordered_unique yani set arayüzünü alırız.
// the set-like interface: (ordered_unique)
auto& as_set = set.get<set_idx>();
random_access yani vector arayüzünü alırız.
auto& random_access = set.get<ra_idx>();
Şöyle yaparız.
// put the random access in the same order as the set:
random_access.rearrange(make_ro_view(as_set).begin());


Hiç yorum yok:

Yorum Gönder