31 Ocak 2018 Çarşamba

range utilities

Giriş
range kütüphanesi şöyledir
1. Range Adaptors
2. Range Algorithms
3. Provided Ranges
4. Utilities

Bu yazıda utilities başlığı altındaki şeyler var.

iterator_range Sınıfı
iterator_range Sınıfı yazısına taşıdım.

sub_range Sınıfı
range algoritmaları yanında yardımcı bir sınıftır.
Örnek ver

combine metodu
Şu satırı dahil ederiz.
#include <boost/range/combine.hpp>
Farklı dizileri beraber dolaşabilmeyi sağlar.

Örnek
Şöyle yaparız.
boost::range::combine(myRange, myRange, myRange);
Örnek
Şöyle yaparız.
std::vector<int> a {4, 5, 6};
double b[] = {7, 8, 9};
std::list<std::string> c {"a", "b", "c"};
for (auto tup : boost::combine(a, b, c, a)) {
  int x, w;
  double y;
  std::string z;
  boost::tie(x, y, z, w) = tup;
  printf("%d %g %s %d\n", x, y, z.c_str(), w);
}
join metodu
Farklı dizileri ardışık olarak dolaşabilmeyi sağlar
Örnek
Elimizde şöyle iki dizi olsun
std::vector<int> values1, values2;
Şöyle yaparız
for (int val : boost::range::join(values1, values2))
   counter += val;

Hiç yorum yok:

Yorum Gönder