User Tools

Site Tools


cpp:stl:containers_commons

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
Last revision Both sides next revision
cpp:stl:containers_commons [2022/06/01 04:26]
gthanos
cpp:stl:containers_commons [2022/06/01 05:50]
gthanos [Συμπληρωματικοί τρόποι πρόσβασης των στοιχείων των STL Containers]
Line 1: Line 1:
-===== Αλλοι τρόποι εισαγωγής και πρόσβασης των στοιχείων ενός Sequence Container =====+====== Συμπληρωματικοί τρόποι πρόσβασης των στοιχείων των STL Containers ======
  
 Η εισαγωγή στοιχείων σε οποιονδήποτε //container// γίνεται δημιουργώντας ένα αντίγραφο του αντικειμένου προς εισαγωγή και αποθήκευση του νέου αντικείμενου στον //container//. Οι τρόποι με τους οποίους δημιουργείται το αντίγραφο περιγράφονται παρακάτω. Η εισαγωγή στοιχείων σε οποιονδήποτε //container// γίνεται δημιουργώντας ένα αντίγραφο του αντικειμένου προς εισαγωγή και αποθήκευση του νέου αντικείμενου στον //container//. Οι τρόποι με τους οποίους δημιουργείται το αντίγραφο περιγράφονται παρακάτω.
Line 24: Line 24:
   std::list<Student> mylist;   std::list<Student> mylist;
   for(int i=0; i<4; i++) {   for(int i=0; i<4; i++) {
-    mylist.push_back(students[i]); +    mylist.insert(mylist.end(),students[i]);                                     // equivalent with push_back
-    //mylist.insert(mylist.end(),students[i]);                                   // equivalent with push_back +
-    //mylist.emplace_back(students[i].getName(), students[i].getAEM());+
     //mylist.emplace(mylist.end(), students[i].getName(), students[i].getAEM()); // equivalent with emplace_back     //mylist.emplace(mylist.end(), students[i].getName(), students[i].getAEM()); // equivalent with emplace_back
   }   }
Line 153: Line 151:
 Η συνάρτηση [[http://www.cplusplus.com/reference/list/list/assign/|assign]] δημιουργεί ένα αντίγραφο των περιεχομένων ξεκινώντας από το πρώτο όρισμα (συμπεριλαμβανομένου) έως και το δεύτερο όρισμα (μη συμπεριλαμβανομένου). Στο παραπάνω παράδειγμα ξεκινά από τη θέση **1** του πίνακα (**myarray.cbegin()+1**) έως και τη θέση **3** (**myarray.cbegin()+3**). Η θέση **myarray.cbegin()+4** που είναι το 2ο όρισμα δεν περιλαμβάνεται στο διάστημα. Η συνάρτηση [[http://www.cplusplus.com/reference/list/list/assign/|assign]] δημιουργεί ένα αντίγραφο των περιεχομένων ξεκινώντας από το πρώτο όρισμα (συμπεριλαμβανομένου) έως και το δεύτερο όρισμα (μη συμπεριλαμβανομένου). Στο παραπάνω παράδειγμα ξεκινά από τη θέση **1** του πίνακα (**myarray.cbegin()+1**) έως και τη θέση **3** (**myarray.cbegin()+3**). Η θέση **myarray.cbegin()+4** που είναι το 2ο όρισμα δεν περιλαμβάνεται στο διάστημα.
  
-Η συνάρτηση [[http://www.cplusplus.com/reference/list/list/assign/|assign]] είναι διαθέσιμη μόνο για sequence_containers και όχι για associative ή unordered_associative containers (//set,map,unordered_set,unordered_map//).+Η συνάρτηση [[http://www.cplusplus.com/reference/list/list/assign/|assign]] είναι διαθέσιμη μόνο για sequence_containers και όχι για associative ή unordered_associative containers (όπως //set,map,unordered_set,unordered_map//).
 </WRAP> </WRAP>
  
 Όπως θα δούμε στη συνέχεια, οι //iterators// της //STL// διατρέχουν οποιαδήποτε δομή από τη θέση //begin()// (δείκτης στην πρώτη θέση περιεχομένων του //container//) έως //end()// (δείκτης αμέσως μετά την τελευταία θέση περιεχομένων του //container//). Όπως θα δούμε στη συνέχεια, οι //iterators// της //STL// διατρέχουν οποιαδήποτε δομή από τη θέση //begin()// (δείκτης στην πρώτη θέση περιεχομένων του //container//) έως //end()// (δείκτης αμέσως μετά την τελευταία θέση περιεχομένων του //container//).
  
cpp/stl/containers_commons.txt · Last modified: 2022/06/01 05:50 by gthanos