Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyświetlanie Listy zaczynając od iteratora/wskaznika.

Ostatnio zmodyfikowano 2013-11-20 21:51
Autor Wiadomość
olieb
Temat założony przez niniejszego użytkownika
Wyświetlanie Listy zaczynając od iteratora/wskaznika.
» 2013-11-20 17:00:55
Mam problem z wyswietleniem listy(ciag). Zawartosc listy wyswietlam za pomoca petli:
C/C++
for( POS = ciag.begin(); POS != ciag.end(); POS++ )
jednak ten sposób wyswietla mi ja od poczatku do konca. Rozumiem, bo iterator jest na poczatku listy i wyswietla ja do konca.

Potrzeboje wyswietlic liste kiedy iterator POS jest na innej pozycji niż ciag.begin()

np:
mam ciag 1 2 3 6 7 5 3 3 4 5
                   ^
                  POS

chce wyswietlic liste zaczynajac od trójki.
P-96806
pekfos
» 2013-11-20 17:08:59
W czym problem?
P-96808
olieb
Temat założony przez niniejszego użytkownika
» 2013-11-20 17:15:36
Pracuje na liscie.

Po wykonaniu kilku operacji na ciagu liczb chce go wyswietlic, zaczynajac od obecnej pozycji iteratora.
P-96809
pekfos
» 2013-11-20 17:18:18
C/C++
for(; POS != ciag.end(); POS++ ) //?
P-96810
olieb
Temat założony przez niniejszego użytkownika
» 2013-11-20 17:22:04
Tak mi sie wlasnie wydaje, ze to musi byc cos prostego. Jednak powyzsze rozwiazanie wogule nie wyswietla ciagu.
P-96811
pekfos
» 2013-11-20 17:22:50
Pokaż kod.
P-96812
olieb
Temat założony przez niniejszego użytkownika
» 2013-11-20 17:25:26
C/C++
#include <iostream>
#include <list>

using namespace std;



int main( int argc, char ** argv ) {
   
    int a, licznik;
    list < unsigned int > ciag;
    list < unsigned int >::iterator POS, it;
   
    cin >> licznik;
   
    while( cin >> a && !cin.eof() ) {
       
        ciag.push_back( a );
       
        it = ciag.begin();
    }
    for( POS = ciag.begin(); POS != ciag.end(); POS++ )
   
    while( licznik != 0 ) {
       
        licznik = licznik--;
       
        if( * POS % 2 == 0 ) {
            ++it;
            ciag.erase( it );
            advance( it, * POS );
        }
       
        else {
            ++it;
            ciag.insert( it, * POS - 1 );
            advance( it, * POS );
           
        }
       
    }
   
    for(; POS != ciag.end(); ++POS ) {
       
        cout << "                           " << * POS << endl;
        cout << endl;
    }
   
    return 0;
}
P-96813
pekfos
» 2013-11-20 17:30:55
No i działa jak trzeba: wyświetla od POS, do końca, z tym, że POS już jest za końcem.
P-96814
« 1 » 2
  Strona 1 z 2 Następna strona