Reverse iterator za seznam (C )

R

rogger123

Guest
Živjo,
Imam problem pripravo naslednji del kode, ki uporablja povratne itretor za seznam.# include <iostream>
# include <list>
using namespace std;

/ / Prikaži elemente v obratnem vrstnem redu
template <class T>
void displayListRev (const seznam & <T> LST)
(
Seznam <T>:: reverse_iterator rl;
for (rl = lst.rbegin (); rl <lst.rend (); rl)
cout <<* rl << '';
cout <<endl;
)

int main ()
(
Seznam <int> listType;
listType.push_back (10);
listType.push_back (30);

listType.sort ();
cout << "Seznam vsebin v obratnem vrstnem redu:";
displayListRev (listType);
return 0;
)to izročiti mi napake za "za" zanke.ena napaka je prilepljen spodaj:
"binarni '=': ni operater, ki bo opredeljen desni operand pa tipa" class std:: reverse_bidirectional_iterator <class std:: Seznam <int, class std:: porazdelitvenega <int>>:: const "Če bom znebil funkcijo "displayListRev (listType)", in namesto tega dodajte correcponding kodo funkcijo v glavno funkcijo, dobi napaka odpravljena in pravilne proizvodnje ustvari.
Ali lahko kdo pojasni razlog za to vedenje.
Spremembe koda je prikazana spodaj:

# include <iostream>
# include <list>
using namespace std;

int main ()
(
Seznam <int> listType;
Seznam <int>:: reverse_iterator rl;
listType.push_back (50);
listType.push_back (30);

listType.sort ();
cout << "Seznam vsebin v obratnem vrstnem redu:";
for (rl = listType.rbegin (); rl! = listType.rend (); rl)
cout <<* rl << '';
return 0;
)

s spoštovanjem
rogger123

 
Če pogledaš podrobno opredelitev svojega delovanja

template <class T>
void displayListRev (const seznam & <T> LST)

Ste prijavljeni LST parameter tipa const.
Zato je za ponovitev v seznam, ki ga morajo uporabiti eno
of const iterators, tj
Seznam <T>:: const_reverse_iterator rl;

Ta naj bi določila svoj prevajalnik opozorila o ne bi mogli
narediti nalogo.

Alpha

 
hvala za rešitev ... kot si rekel, da je "const", ki je ustvarjal problem.

 

Welcome to EDABoard.com

Sponsor

Back
Top