Iteratorer i C++ STL
Forutsetning: Introduksjon til iteratorer
Iteratorer brukes til å peke på minneadressene til STL containere. De brukes først og fremst i sekvenser av tall, tegn osv. De reduserer kompleksiteten og utføringstiden til programmet.
Operasjoner av iteratorer :-
1. begynne() :- Denne funksjonen brukes til å returnere startposisjon av beholderen.
2. end() :- Denne funksjonen brukes til å returnere etter endeposisjon av beholderen.
// C++ code to demonstrate the working of> // iterator, begin() and end()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> > vector <> int> >med = { 1, 2, 3, 4, 5 };> > > // Declaring iterator to a vector> > vector <> int> >::iterator ptr;> > > // Displaying vector elements using begin() and end()> > cout < <> 'The vector elements are : '> ;> > for> (ptr = ar.begin(); ptr cout < < *ptr < < ' '; return 0; }> |
Produksjon:
The vector elements are : 1 2 3 4 5
3. forhånd() :- Denne funksjonen brukes til øke iteratorposisjonen til det angitte antallet nevnt i argumentene.
// C++ code to demonstrate the working of> // advance()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> > vector <> int> >med = { 1, 2, 3, 4, 5 };> > > // Declaring iterator to a vector> > vector <> int> >::iterator ptr = ar.begin();> > > // Using advance() to increment iterator position> > // points to 4> > advance(ptr, 3);> > > // Displaying iterator position> > cout < <> 'The position of iterator after advancing is : '> ;> > cout < < *ptr < <> ' '> ;> > > return> 0;> > }> |
Produksjon:
The position of iterator after advancing is : 4
4. neste() :- Denne funksjonen returnerer den nye iteratoren som iteratoren ville peke etter fremme posisjonene nevnt i sine argumenter.
5. forrige() :- Denne funksjonen returnerer den nye iteratoren at iteratoren ville peke etter å ha redusert posisjonene nevnt i sine argumenter.
// C++ code to demonstrate the working of> // next() and prev()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> > vector <> int> >med = { 1, 2, 3, 4, 5 };> > > // Declaring iterators to a vector> > vector <> int> >::iterator ptr = ar.begin();> > vector <> int> >::iterator ftr = ar.end();> > > > // Using next() to return new iterator> > // points to 4> > auto> it = next(ptr, 3);> > > // Using prev() to return new iterator> > // points to 3> > auto> it1 = prev(ftr, 3);> > > // Displaying iterator position> > cout < <> 'The position of new iterator using next() is : '> ;> > cout < < *it < <> ' '> ;> > cout < < endl;> > > // Displaying iterator position> > cout < <> 'The position of new iterator using prev() is : '> ;> > cout < < *it1 < <> ' '> ;> > cout < < endl;> > > return> 0;> }> |
Produksjon:
The position of new iterator using next() is : 4 The position of new iterator using prev() is : 3
6. sett inn() :- Denne funksjonen brukes til sett inn elementene i en hvilken som helst posisjon i beholderen. Det godtar 2 argumenter, beholderen og iteratoren til posisjonen der elementene må settes inn .
// C++ code to demonstrate the working of> // inserter()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> > vector <> int> >med = { 1, 2, 3, 4, 5 };> > vector <> int> >ar1 = {10, 20, 30};> > > // Declaring iterator to a vector> > vector <> int> >::iterator ptr = ar.begin();> > > // Using advance to set position> > advance(ptr, 3);> > > // copying 1 vector elements in other using inserter()> > // inserts ar1 after 3rd position in ar> > copy(ar1.begin(), ar1.end(), inserter(ar,ptr));> > > // Displaying new vector elements> > cout < <> 'The new vector after inserting elements is : '> ;> > for> (> int> &x : ar)> > cout < < x < <> ' '> ;> > > return> 0;> }> |
Produksjon:
The new vector after inserting elements is : 1 2 3 10 20 30 4 5
Typer iteratorer:
- Inndata-iteratorer
- Utgang iteratorer
- Fremover iterator
- Toveis iteratorer
- Iteratorer med tilfeldig tilgang