Начать изучение следует со следующего простого демонстрационного примера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <iostream> #include <array> #include <algorithm> using namespace std; void f (int & e) {++e;} int main() { array<int,15> x; x.fill(5); x[0]=-3; for(auto e: x) cout << e << " "; cout << endl; for(auto i = x.cbegin(); i != x.cend(); i++) cout << *i << " "; cout << endl; for(auto i = x.rbegin(); i != x.rend(); i++) cout << *i << " "; cout << endl; for_each(x.begin(), x.end(), f); for_each(x.begin(), x.end(), [](const int e){ cout << e << " "; }); cout << endl; array< array<int,3>, 3> y = {{{1,2,3}, {4,5,6}, {7,8,9}}}; for (const auto &r: y) { for (const auto &c: r) { cout << c << " "; } cout << endl; } return 0; } |
В качестве отправной точки для изучения справочного материалы стоит использовать эти статьи на сайте cplusplus.com
(англ.) и cppreference.com (рус.).
Собственно, приведенный код является не более чем поводом для обсуждения следующих важных моментов:
- Параметризованные типы (шаблоны, templates, generics) — пока только использование, а не написание собственных структур и классов.
- Итераторы.
- Анонимные функции (лямбда выражения).