STD::array у C++
Масив — це набір однорідних об’єктів, і цей контейнер масиву визначено для масивів постійного розміру або (статичного розміру). Цей контейнер обертається навколо масивів фіксованого розміру, і інформація про його розмір не втрачається при оголошенні вказівника.
Щоб використовувати масиви, нам потрібно включити заголовок масиву:
#include
Давайте подивимося на приклад.
CPP
// CPP program to demonstrate working of array> #include> #include> #include> #include> #include> using> namespace> std;> int> main() {> > // construction uses aggregate initialization> > // double-braces required> > array <> int> , 5>або1{{3, 4, 5, 1, 2}};> > array <> int> , 5>ar2 = {1, 2, 3, 4, 5};> > array ar3 = {{string(> 'a'> ),> 'b'> }};> > cout < <> 'Sizes of arrays are'> < < endl;> > cout < < ar1.size() < < endl;> > cout < < ar2.size() < < endl;> > cout < < ar3.size() < < endl;> > > cout < <> '
Initial ar1 : '> ;> > for> (> auto> i : ar1)> > cout < < i < <> ' '> ;> > // container operations are supported> > sort(ar1.begin(), ar1.end());> > cout < <> '
sorted ar1 : '> ;> > for> (> auto> i : ar1)> > cout < < i < <> ' '> ;> > // Filling ar2 with 10> > ar2.fill(10);> > cout < <> '
Filled ar2 : '> ;> > for> (> auto> i : ar2)> > cout < < i < <> ' '> ;> > // ranged for loop is supported> > cout < <> '
ar3 : '> ;> > for> (> auto> &s : ar3)> > cout < < s < <> ' '> ;> > return> 0;> }> |
Вихід:
Sizes of arrays are 5 5 2 Initial ar1 : 3 4 5 1 2 sorted ar1 : 1 2 3 4 5 Filled ar2 : 10 10 10 10 10 ar3 : a b
Цей масив C++ STL є свого роду послідовним контейнером і не використовується виключно в звичайному програмуванні чи конкурентному програмуванні, але іноді його функція-член забезпечує йому верхню межу над звичайним звичайним масивом, який ми використовуємо в нашому повсякденному житті. Отже, ми обговорюємо деякі важливі функції-члени, які використовуються з таким видом масиву:
Функції-члени для шаблону масиву такі:
Синтаксис: масив arr_name;
а) Оператор [ ]. : Це схоже на звичайний масив, ми використовуємо його для доступу до сховища елементів за індексом «i».
Наприклад:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> char> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> > cout < ' ' < return 0; }> |
Вихід
G G
b) функція front( ) і back( ): Ці методи використовуються для безпосереднього доступу до першого та останнього елемента масиву.
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > cout < ' ' < return 0; }> |
Вихід
71 71
c) функція swap(): Ця функція обміну використовується для обміну вмістом двох масивів.
Наприклад:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > array <> int> , 3>arr1={> 'M'> ,> 'M'> ,> 'P'> };> // ASCII val of 'M' = 77 and 'P' = 80> > arr.swap(arr1);> // now arr = {M,M,P}> > cout < ' ' < return 0; }> |
Вихід
77 80
d) функція empty(): Ця функція використовується для перевірки того, чи оголошений масив STL порожній чи ні, якщо він порожній, повертає true else false.
Наприклад:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > array <> int> , 3>arr1={> 'M'> ,> 'M'> ,> 'P'> };> // ASCII val of 'M' = 77 and 'P' = 80> > bool> x = arr.empty();> // false ( not empty)> > cout < return 0; }> |
Вихід
false
д) функція at( ): Ця функція використовується для доступу до елемента, який зберігається в певному місці, якщо ми намагаємося отримати доступ до елемента, який виходить за межі розміру масиву, тоді виникає виняток.
Наприклад:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > array <> int> , 3>arr1={> 'M'> ,> 'M'> ,> 'P'> };> // ASCII val of 'M' = 77 and 'P' = 80> > cout < < arr.at(2) < <> ' '> < < arr1.at(2);> > //cout < < arr.at(3); // exception{Abort signal from abort(3) (SIGABRT)}> > return> 0;> }> |
Вихід
71 80
f) функція fill(): Це спеціально використовується для ініціалізації або заповнення всіх індексів масиву подібним значенням.
Наприклад:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 5>arr;> > arr.fill(1);> > for> (> int> i: arr)> > cout < ' '; return 0; }> |
Вихід
1 1 1 1 1
g) функція size() або max_size() і sizeof(): І size(), і max_size() використовуються для отримання максимальної кількості індексів у масиві, тоді як sizeof() використовується для отримання загального розміру масиву в байтах.
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 10>обр.;> > cout < '
'; // total num of indexes cout < '
'; // total num of indexes cout < |
Вихід
10 10 40
h) дані(): Ця функція повертає вказівник на перший елемент об’єкта масиву. Оскільки елементи в масиві зберігаються в безперервних місцях пам’яті. Ця функція data() повертає нам базову адресу об’єкта типу string/char.
Наприклад:
C++
#include> #include> #include> using> namespace> std;> int> main ()> {> > const> char> * str => 'techcodeview.com'> ;> > array <> char> ,13>arr;> > memcpy> (arr.data(),str,13);> > cout < < arr.data() < <> '
'> ;> > return> 0;> }> |
techcodeview.com
I) cbegin() і cend(): перейдіть за цим посиланням gfg: Click_me