cpp:stl:map
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cpp:stl:map [2020/05/31 08:30] – [H συνάρτηση operator[]] gthanos | cpp:stl:map [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 5: | Line 5: | ||
Τα στοιχεία-κλειδιά αποθηκεύονται εσωτερικά σε ένα ισοζυγισμένο δέντρο αναζητήσεως (π.χ.[[wp> | Τα στοιχεία-κλειδιά αποθηκεύονται εσωτερικά σε ένα ισοζυγισμένο δέντρο αναζητήσεως (π.χ.[[wp> | ||
- | Η κατάταξη ενός νέου στοιχείου-κλειδιού γίνεται πάντα μέσω σύγκρισης με τα υπόλοιπα στοιχεία που είναι αποθηκευμένα στην δομή. Για τον λόγο αυτό, απαραίτητη προϋπόθεση για τη λειτουργία του //map// (όπως και στο [[cpp: | + | Η κατάταξη ενός νέου στοιχείου-κλειδιού γίνεται πάντα μέσω σύγκρισης με τα υπόλοιπα στοιχεία που είναι αποθηκευμένα στην δομή. Για τον λόγο αυτό, απαραίτητη προϋπόθεση για τη λειτουργία του //map// (όπως και στο [[cpp: |
<code cpp> | <code cpp> | ||
Line 64: | Line 64: | ||
void print(std:: | void print(std:: | ||
for(auto it = s.cbegin(); it!=s.cend(); | for(auto it = s.cbegin(); it!=s.cend(); | ||
- | std::cout << it-> | + | std::cout << it-> |
} | } | ||
Line 160: | Line 160: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== H συνάρτηση at ==== | ||
+ | |||
+ | Η συνάρτηση [[http:// | ||
+ | |||
+ | === Παράδειγμα 1ο - Ανάγνωση με χρήση της συνάρτησης at === | ||
+ | |||
+ | <code cpp student_map_read_using_at.cpp> | ||
+ | #include <map> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #include " | ||
+ | |||
+ | int main() { | ||
+ | std:: | ||
+ | | ||
+ | std:: | ||
+ | | ||
+ | std:: | ||
+ | students.insert( peter_pan ); | ||
+ | students.insert( mickey_mouse ); | ||
+ | | ||
+ | std::string address_pp; | ||
+ | std::string address_mm; | ||
+ | | ||
+ | try { | ||
+ | address_pp = students.at(Student(" | ||
+ | } | ||
+ | catch(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | | ||
+ | try { | ||
+ | address_mm = students.at(Student(" | ||
+ | } | ||
+ | catch(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | | ||
+ | std::cout << "Peter Pan address: " << address_pp << std::endl; | ||
+ | std::cout << "Minie Mouse address: " << address_mm << std:: | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Παράδειγμα 2ο - Εγγραφή με χρήση της συνάρτησης at === | ||
+ | |||
+ | <code cpp student_map_write_using_at.cpp> | ||
+ | #include <map> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #include " | ||
+ | |||
+ | template< | ||
+ | void print(std:: | ||
+ | for(auto it = s.cbegin(); it!=s.cend(); | ||
+ | std::cout << it-> | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | std:: | ||
+ | | ||
+ | std:: | ||
+ | | ||
+ | std:: | ||
+ | students.insert( peter_pan ); | ||
+ | students.insert( mickey_mouse ); | ||
+ | | ||
+ | try { | ||
+ | students.at( Student(" | ||
+ | } | ||
+ | catch(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | try { | ||
+ | students.at( Student(" | ||
+ | } | ||
+ | catch(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | | ||
+ | print(students); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
cpp/stl/map.1590913829.txt.gz · Last modified: 2020/05/31 07:30 (external edit)