Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
cpp:stl:containers [2020/05/30 18:47] – [Αντιγραφή των στοιχείων προς ένθεση μέσα σε ένα Container] gthanos | cpp:stl:containers [2020/05/30 18:50] – gthanos |
---|
=== Χρήση Copy-Constructor ή άλλου κατασκευαστή === | === Χρήση Copy-Constructor ή άλλου κατασκευαστή === |
| |
Κατά την ένθεση ενός στοιχείου σε ένα //container//, δημιουργείται πάντοτε ένα αντίγραφο του στοιχείου σε αυτόν. Για παράδειγμα, για την ένθεση στοιχείων της κλάσης [[doku.php?do=export_code&id=cpp:templates&codeblock=0|Student]] μέσα σε ένα //container list// τα στοιχεία θα αντιγραφούν εντός του //list// στο τέλος της λίστας (οι μέθοδοι //insert_back// και //emplace_back// εισάγουν στο τέλος της λίστας) ως εξής: | Κατά την ένθεση ενός στοιχείου σε ένα //container//, δημιουργείται πάντοτε ένα αντίγραφο του στοιχείου σε αυτόν. Για παράδειγμα, για την ένθεση στοιχείων της κλάσης [[https://courses.e-ce.uth.gr/ECE326/doku.php?do=export_code&id=cpp:templates&codeblock=0|Student]] μέσα σε ένα //container list// τα στοιχεία θα αντιγραφούν εντός του //list// στο τέλος της λίστας (οι μέθοδοι //insert_back// και //emplace_back// εισάγουν στο τέλος της λίστας) ως εξής: |
| |
<code cpp student_list.cpp> | <code cpp student_list.cpp> |
mylist.push_back(students[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].name, students[i].aem); | //mylist.emplace_back(students[i].getName(), students[i].getAEM()); |
//mylist.emplace(mylist.end(), students[i].name, students[i].aem); // equivalent with emplace_back | //mylist.emplace(mylist.end(), students[i].getName(), students[i].getAEM()); // equivalent with emplace_back |
} | } |
| |