5 Ocak 2017 Perşembe

assign

Giriş
Şu satırı dahil ederiz.
namespace ba = boost::assign;
operator += - insert
Şu satırı dahil ederiz.
#include <boost/assign/std/vector.hpp>
İllendirme metodu değildir, mevcut vector'e ekleme yapar. Şöyle yaparız
std::vector< int > myElements;
myElements += 1,2,3,4,5;
C++11 kullanıyorsak şöyle yaparız.
std::vector<int> values;
values.insert( values.end(), { 1, 2, 3, 4 } );
list_of metodu - ilklendirme
list_of metodu yazısına taşıdım.
map_list_of metodu - ilklendirme
Şu satırı dahil ederiz.
#include <boost/assign/list_of.hpp>
map_list_of() ile map veri yapısını ilklendiririz. C++11 ile bu yapıya gerek kalmadı, daha kısa bir şekilde şöyle yaparız.
map<int, char> m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}};
enum + std::function
Elimizde bir map olsun
class Foo
{
public:    
  enum class MapKeys
  {
    Key1,
    Key2
  };

  typedef std::map<Foo::MapKeys, std::function<bool(Foo*, int i)>> fooMap;

  static const Foo::fooMap myMap ;  ...
}
Şöyle yaparız.
const Foo::fooMap Foo::myMap = 
  ba::map_list_of(Foo::MapKeys::Key1, std::mem_fn(&Foo::key1_handler))
  (Foo::MapKeys::Key2, std::mem_fn(&Foo::key2_handler));

int + char 
Şöyle yaparız
map<int, char> m = map_list_of (1, 'a') (3, 'b') (5, 'c') (7, 'd');
int + std::set
Elimizd şöyle bir map olsun.
the_map_t data = boost::assign::map_list_of<uint32_t, std::set< uint32_t> >(...);
Şöyle yaparız.
typedef std::map< uint32_t, std::set< uint32_t> > the_map_t;

the_map_t data = assign::map_list_of
  (11, boost::assign::list_of(10)(20)(30) )
  ( 2, boost::assign::list_of(12)(22)(32) )
  ( 3, boost::assign::list_of(13)(23)(33) )
  ( 4, boost::assign::list_of(14)(24)(34) );
wstring + int
Şöyle yaparız.
std::map<std::wstring, int> m = boost::assign::map_list_of(L"", 1);
push_back metodu - insert
Şu satırı dahil ederiz.
#include <boost/assign/list_of.hpp>
Şöyle yaparız.
std::vector<int> v;
boost::assign::push_back(v).repeat(1000, 1).repeat(1000, 2);


Hiç yorum yok:

Yorum Gönder