boost::irange Sınıfı
s setinde olmayan sayılar resultVector'e eklemek için şöyle yaparız
irange verilen aralık için hafıza harcıyor counting_range ise harcamıyor.
boost::make_iterator_range metodu
Verilen iki iterator'ü range haline getirilerek algoritmalarda kullanılabilir. Vector için şöyle yaparız.
range adaptors yazısına taşıdım.
sliced Sınıfı
range adaptors yazısına taşıdım.
s setinde olmayan sayılar resultVector'e eklemek için şöyle yaparız
auto abRange = boost::irange(a,b+1);
std::set_difference(abRange.begin(), abRange.end(),
s.lower_bound(a), s.upper_bound(b),
std::back_inserter(resultVector));
boost::make_iterator_range metodu
Verilen iki iterator'ü range haline getirilerek algoritmalarda kullanılabilir. Vector için şöyle yaparız.
std::vector<std::string> s { "bob", "hey", "joe", "doe" };
std::vector<std::string> d;
for (auto i = std::begin(s); i != std::end(s); ++i) {
d.push_back(boost::algorithm::join(
boost::make_iterator_range(std::begin(s), i + 1),
std::string(" ")
));
}
Şu çıktıyı alırız.bob
bob hey
bob hey joe
bob hey joe doe
Map için şöyle yaparız.tMyMap const& my_map; // NOTE const
// ...
boost::make_iterator_range(my_map.lower_bound(123), mymap.upper_bound(456));
filtered Sınıfırange adaptors yazısına taşıdım.
sliced Sınıfı
range adaptors yazısına taşıdım.
Hiç yorum yok:
Yorum Gönder