cpp:stl:array
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
cpp:stl:array [2020/05/27 14:44] – created gthanos | cpp:stl:array [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== std::array ====== | ====== std::array ====== | ||
- | Πρόκειται για μία δομή πίνακα | + | Πρόκειται για μία δομή πίνακα |
+ | |||
+ | ===== Επίδοση της δομής ===== | ||
+ | |||
+ | * Η πράξη της | ||
+ | * Η πράξη | ||
+ | * Η πράξη της αναζήτησης | ||
+ | * Η πρόσβαση στο i-στο στοιχείο του πίνακα έχει κόστος 1. | ||
+ | |||
+ | |||
+ | ===== Ορισμός και διάτρεξη πίνακα ===== | ||
+ | |||
+ | <code cpp array_iterator.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | int main () { | ||
+ | std:: | ||
+ | |||
+ | std::cout << " | ||
+ | for (auto it=myarray.cbegin() ; it < myarray.cend(); | ||
+ | std::cout << ' ' << *it; // cannot modify *it | ||
+ | std::cout << ' | ||
+ | |||
+ | cout << " | ||
+ | for (auto rit=myarray.crbegin() ; rit < myarray.crend(); | ||
+ | std::cout << ' ' << *rit; // cannot modify *rit | ||
+ | std::cout << ' | ||
+ | |||
+ | std::cout << " | ||
+ | for (auto it=myarray.cbegin() ; it < myarray.cend(); | ||
+ | *it += 10; | ||
+ | std::cout << ' ' << *it; // cannot modify *it | ||
+ | } | ||
+ | std::cout << ' | ||
+ | |||
+ | cout << " | ||
+ | for (auto rit=myarray.rbegin() ; rit < myarray.rend(); | ||
+ | *it += 100; | ||
+ | std::cout << ' ' << *rit; // cannot modify *rit | ||
+ | } | ||
+ | std::cout << ' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <code cpp array_for.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | int main () { | ||
+ | std:: | ||
+ | |||
+ | for(int i=0; i< | ||
+ | std::cout << ' ' << myarray[i]; | ||
+ | std::cout << endl; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Πρόσβαση στα στοιχεία του πίνακα ===== | ||
+ | |||
+ | <code cpp array_access_op[].cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | int main () { | ||
+ | array< | ||
+ | |||
+ | myarray[5] = 600; | ||
+ | cout << " | ||
+ | myarray[6] = 1; | ||
+ | cout << " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Παρατηρούμε ότι στον παραπάνω κώδικα η πρόσβαση εκτός ορίων παράγει τερματισμό | ||
+ | |||
+ | <code cpp array_access_at.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | int main () { | ||
+ | array< | ||
+ | |||
+ | myarray[5] = 600; | ||
+ | cout << " | ||
+ | try { | ||
+ | myarray.at(10) = 1; | ||
+ | cout << " | ||
+ | } catch(std:: | ||
+ | cout << ex.what() << endl; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
cpp/stl/array.1590590674.txt.gz · Last modified: 2020/05/27 13:44 (external edit)