Пространства имён
Варианты
Действия

std::array

Материал из cppreference.com
 
 
 
std::array
Член функций
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Элемент доступа
Original:
Element access
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
array::at
array::operator[]
array::front
array::back
array::data
Итераторы
Original:
Iterators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
array::begin
array::cbegin
array::end
array::cend
array::rbegin
array::crbegin
array::rend
array::crend
Потенциала
Original:
Capacity
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
array::empty
array::size
array::max_size
Модификаторы
Original:
Modifiers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
array::fill
array::swap
Не являющиеся членами функций
Original:
Non-member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
get
swap
Вспомогательные классы
Original:
Helper classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
tuple_size
tuple_element
 
Заголовочный файл <array>
template<

    class T,
    std::size_t N

> struct array;
(начиная с C++11)

std::array - это контейнер, инкапсулирующий массив фиксированного размера.

Эта структура имеет ту же семантику, что и C-массивы. Размер и эффективность array<T,N> такие же, как у C-массива T[N]. array предоставляет некоторые возможности стандартных контейнеров, такие как знание собственного размера, поддержка присваивания, итераторы случайного доступа и т.д.

Можно создавать array нулевой длины (N == 0). В таком случае, array.begin() == array.end(), представляет некоторое уникальное значение. Последствия вызова front() или back() для массивов нулевой длины не определены.

array - это агрегатный тип (не имеет конструкторов и закрытых/защищённых членов), что позволяет использовать aggregate-initialization.

array также может быть использован как кортеж из N элементов одного типа.

Содержание

[править] Типы

Тип Определение
value_type T [edit]
size_type size_t [edit]
difference_type std::ptrdiff_t [edit]
reference value_type& [edit]
const_reference const value_type& [edit]
pointer T*[edit]
const_pointer const T*[edit]
iterator RandomAccessIterator [edit]
const_iterator Константный итератор с произвольным доступом [edit]
reverse_iterator std::reverse_iterator<iterator> [edit]
const_reverse_iterator std::reverse_iterator<const_iterator> [edit]

[править] Функции-члены

Доступ к элементам
предоставляет доступ к указанному элементу с проверкой индекса
(публичная функция-член) [edit]
предоставляет доступ к указанному элементу
(публичная функция-член) [edit]
предоставляет доступ к первому элементу
(публичная функция-член) [edit]
предоставляет доступ к последнему элементу
(публичная функция-член) [edit]
(C++11)
предоставляет прямой доступ к внутреннему содержимому
(публичная функция-член) [edit]
Итераторы
возвращает итератор на первый элемент
(публичная функция-член) [edit]
возвращает итератор на элемент, следующий за последним
(публичная функция-член) [edit]
возвращает обратный итератор на начало
Original:
returns a reverse iterator to the beginning
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(публичная функция-член) [edit]
возвращает обратный итератор до конца
Original:
returns a reverse iterator to the end
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(публичная функция-член) [edit]
Размер
проверяет отсутствие элементов в контейнере
(публичная функция-член) [edit]
возвращает количество элементов
Original:
returns the number of elements
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(публичная функция-член) [edit]
возвращает максимально допустимое количество элементов
(публичная функция-член) [edit]
Операции
заполнить контейнер с указанным значением
Original:
fill the container with specified value
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(публичная функция-член) [edit]
обмениевает содержимое
(публичная функция-член) [edit]

[править] Функции не члены

лексикографически сравнивает значения в array
Original:
lexicographically compares the values in the array
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(шаблон функции) [edit]
accesses an element of an array
(шаблон функции) [edit]
Специализируется std::swap алгоритм
Original:
specializes the std::swap algorithm
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(шаблон функции) [edit]

[править] Вспомогательные классы

получает размер array
Original:
obtains the size of an array
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(специализация шаблона класса) [edit]
получает тип элементов array
Original:
obtains the type of the elements of array
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(специализация шаблона класса) [edit]

[править] Пример

#include <string>
#include <iterator>
#include <iostream>
#include <algorithm>
#include <array>
 
int main()
{
    // конструктор использует aggregate initialization
    std::array<int, 3> a1{ {1,2,3} };  // требуются двойные фигурные скобки,
    std::array<int, 3> a2 = {1, 2, 3}; // за исключением операций присваивания
    std::array<std::string, 2> a3 = { {std::string("a"), "b"} };
 
    // поддерживаются обобщённые алгоритмы
    std::sort(a1.begin(), a1.end());
    std::reverse_copy(a2.begin(), a2.end(), std::ostream_iterator<int>(std::cout, " "));
 
    // поддерживается randed for цикл
    for(auto& s: a3)
        std::cout << s << ' ';
}

Вывод:

3 2 1 a b