cpp:stl:iterators

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
cpp:stl:iterators [2022/05/26 18:54]
gthanos [STL Iterators]
cpp:stl:iterators [2023/05/29 17:58]
gthanos [Κοινές συναρτήσεις για όλους τους iterators]
Line 231: Line 231:
 Εάν θέλουμε να υπολογίσουμε την απόσταση μεταξύ δύο //iterators// παρέχεται η συνάρτηση [[http://www.cplusplus.com/reference/iterator/distance/|distance]] η οποία υπολογίζει την απόσταση από το πρώτο όρισμα (//first//) έως το δεύτερο όρισμα (//last//) μετακινώντας τον δείκτη από //first// έως //last// με χρήση του τελεστή ''++''. Η συνάρτηση υποθέτει ότι το //first// βρίσκεται πριν από το //last//. Εάν θέλουμε να υπολογίσουμε την απόσταση μεταξύ δύο //iterators// παρέχεται η συνάρτηση [[http://www.cplusplus.com/reference/iterator/distance/|distance]] η οποία υπολογίζει την απόσταση από το πρώτο όρισμα (//first//) έως το δεύτερο όρισμα (//last//) μετακινώντας τον δείκτη από //first// έως //last// με χρήση του τελεστή ''++''. Η συνάρτηση υποθέτει ότι το //first// βρίσκεται πριν από το //last//.
  
-===== Κοινές συναρτήσεις για όλους τους containers για την επιστροφή των θέσεων αρχής και τέλους =====+Δείτε το παρακάτω παράδειγμα χρήσης των συγκεκριμένων συναρτήσεων  
 + 
 +<code cpp advance_distance.cpp> 
 +#include <iostream>     // std::cout 
 +#include <iterator>     // std::advance 
 +#include <list>         // std::list 
 + 
 +int main () { 
 +  std::list<int> mylist; 
 +  for (int i=0; i<10; i++) mylist.push_back (i*10); 
 +   
 +  for(std::list<int>::const_iterator it = mylist.cbegin(); it!=mylist.cend(); ++it) 
 +    std::cout << *it << " "; 
 +  std::cout << std::endl; 
 + 
 +  std::list<int>::iterator it = mylist.begin(); 
 +   
 +  std::advance (it,5); 
 + 
 +  std::cout << "The sixth element in mylist is: " << *it << '\n'; 
 +   
 +  std::list<int>::iterator it1 = mylist.begin(); 
 +  std::advance(it1,2); 
 +   
 +  std::list<int>::iterator it2 mylist.end(); 
 +  std::advance(it2,-2); 
 +   
 +  std::cout << "Distance between it1 and it2 is: " << distance(it1, it2) << std::endl; 
 + 
 +  return 0; 
 +
 +</code> 
 + 
 +==== Κοινές συναρτήσεις για όλους τους containers για την επιστροφή των θέσεων αρχής και τέλους ====
  
 H //STL// παρέχει τις //templated// συναρτήσεις [[http://www.cplusplus.com/reference/iterator/begin/|begin]] και [[http://www.cplusplus.com/reference/iterator/end|end]] για την εύρεση της αρχικής και της τελικής θέσης οποιουδήποτε //container//. Οι συναρτήσεις αυτές είναι διαφορετικές από τις συναρτήσεις μέλη //begin// και //end// που περιέχει κάθε //container//. Παράδειγμα χρήσης των συναρτήσεων αυτών δίνεται παρακάτω: H //STL// παρέχει τις //templated// συναρτήσεις [[http://www.cplusplus.com/reference/iterator/begin/|begin]] και [[http://www.cplusplus.com/reference/iterator/end|end]] για την εύρεση της αρχικής και της τελικής θέσης οποιουδήποτε //container//. Οι συναρτήσεις αυτές είναι διαφορετικές από τις συναρτήσεις μέλη //begin// και //end// που περιέχει κάθε //container//. Παράδειγμα χρήσης των συναρτήσεων αυτών δίνεται παρακάτω:
cpp/stl/iterators.txt · Last modified: 2023/05/30 18:48 by gthanos