SORU
17 Aralık 2011, CUMARTESİ


C 11 ters aralığı tabanlı için döngü

-Döngü aralığı tabanlı ters bir kabın içinde yineleme böylece kullanımına yönünü ters olacağı kapsayıcı bir adaptör var mı?

Kullanımına açık olan bu dönüştürmek istiyorum:

for (auto i = c.begin(); i != c.end();   i) { ...

bu içine:

for (auto i = c.rbegin(); i != c.rend();   i) { ...

Bu dönüştürmek istiyorum

for (auto& i: c) { ...

bunun için:

for (auto& i: std::magic_reverse_adapter(c)) { ...

Böyle bir şey var ya da ben kendim yazmak zorunda mıyım?

CEVAP
17 Aralık 2011, CUMARTESİ


Aslında Boost böyle bir adaptör var mı: boost::adaptors::reverse.

#include <list>
#include <iostream>
#include <boost/range/adaptor/reversed.hpp>

int main()
{
    std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 };
    for (auto i : boost::adaptors::reverse(x))
        std::cout << i << '\n';
    for (auto i : x)
        std::cout << i << '\n';
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • Klemens Torggler

    Klemens Torg

    11 Mart 2008
  • thetrollska

    thetrollska

    2 EKİM 2009