array
Класс (стандартная библиотека C++)
Описывает объект, управляющий последовательностью из элементов N
типа Ty
. Последовательность хранится как массив Ty
в объекте array<Ty, N>
.
Синтаксис
template <class Ty, std::size_t N>
class array;
Параметры
Ty
Тип элемента.
N
Число элементов.
Участники
Определение типа | Description |
---|---|
const_iterator |
Тип постоянного итератора для управляемой последовательности. |
const_pointer |
Тип постоянного указателя на элемент. |
const_reference |
Тип постоянной ссылки на элемент. |
const_reverse_iterator |
Тип постоянного обратного итератора для управляемой последовательности. |
difference_type |
Тип расстояния со знаком между двумя элементами. |
iterator |
Тип итератора для управляемой последовательности. |
pointer |
Тип указателя на элемент. |
reference |
Тип ссылки на элемент. |
reverse_iterator |
Тип обратного итератора для управляемой последовательности. |
size_type |
Тип беззнакового расстояния между двумя элементами. |
value_type |
Тип элемента. |
Функция-член | Description |
---|---|
array |
Создает объект массива. |
assign |
(Устаревшее. Используйте fill .) Заменяет все элементы. |
at |
Обращается к элементу в указанной позиции. |
back |
Обращается к последнему элементу. |
begin |
Задает начало управляемой последовательности. |
cbegin |
Возвращает постоянный итератор произвольного доступа, указывающий на первый элемент в массиве. |
cend |
Возвращает постоянный итератор произвольного доступа, указывающий на предпоследнюю позицию массива. |
crbegin |
Возвращает константный итератор, который указывает на первый элемент в обращенном массиве. |
crend |
Возвращает постоянный итератор, который указывает на последний элемент в обратном массиве. |
data |
Получает адрес первого элемента. |
empty |
Проверяет наличие элементов. |
end |
Задает конец управляемой последовательности. |
fill |
Заменяет все элементы указанным значением. |
front |
Обращается к первому элементу. |
max_size |
Подсчитывает количество элементов. |
rbegin |
Задает начало обратной управляемой последовательности. |
rend |
Задает конец обратной управляемой последовательности. |
size |
Подсчитывает количество элементов. |
swap |
Меняет местами содержимое двух контейнеров. |
Operator | Description |
---|---|
array::operator= |
Заменяет управляемую последовательность. |
array::operator[] |
Обращается к элементу в указанной позиции. |
Замечания
У этого типа есть конструктор по умолчанию array()
и оператор присваивания по умолчанию operator=
. Тип удовлетворяет требованиям для aggregate
. Поэтому объекты типа array<Ty, N>
можно инициализировать с помощью агрегатного инициализатора. Например,
array<int, 4> ai = { 1, 2, 3 };
создает объект ai
, содержащий четыре целочисленных значения, инициализирует первые три элемента как 1, 2 и 3 соответственно и инициализирует четвертый элемент как 0.
Требования
Заголовок: <array>
Пространство имен: std
array::array
Создает объект массива.
array();
array(const array& right);
Параметры
right
Объект или диапазон для вставки.
Замечания
Конструктор по умолчанию array()
оставляет управляемую последовательность неинициализированной (или инициализированной по умолчанию). Он используется для указания неинициализированной управляемой последовательности.
Конструктор копий array(const array& right)
инициализирует управляемую последовательность с помощью последовательности [right.begin()
, right.end()
). Он используется для указания начальной управляемой последовательности, которая является копией последовательности, управляемой объектом right
массива.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
Myarray c1(c0);
// display contents " 0 1 2 3"
for (const auto& it : c1)
{
std::cout << " " << it;
}
std::cout << std::endl;
return (0);
}
0 1 2 3
0 1 2 3
array::assign
Устаревшее в C++11, замененное fill
. Заменяет все элементы.
array::at
Обращается к элементу в указанной позиции.
reference at(size_type off);
constexpr const_reference at(size_type off) const;
Параметры
off
Позиция элемента, к которому осуществляется доступ.
Замечания
Функции-члены возвращают ссылку на элемент управляемой последовательности в позиции off
. Если эта позиция недопустима, функция выдает объект класса out_of_range
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display odd elements " 1 3"
std::cout << " " << c0.at(1);
std::cout << " " << c0.at(3);
std::cout << std::endl;
return (0);
}
array::back
Обращается к последнему элементу.
reference back();
constexpr const_reference back() const;
Замечания
Функции-члены возвращают ссылку на последний элемент управляемой последовательности, который должен быть не пустым.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display last element " 3"
std::cout << " " << c0.back();
std::cout << std::endl;
return (0);
}
0 1 2 3
3
array::begin
Задает начало управляемой последовательности.
iterator begin() noexcept;
const_iterator begin() const noexcept;
Замечания
Функции-члены возвращают итератор произвольного доступа, указывающий на первый элемент последовательности (или на место сразу за концом пустой последовательности)).
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
Myarray::iterator it2 = c0.begin();
std::cout << " " << *it2;
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::cbegin
Возвращает итератор const
, направленный на первый элемент в диапазоне.
const_iterator cbegin() const noexcept;
Возвращаемое значение
Итератор случайного доступа const
, который указывает на первый элемент диапазона или расположение прямо за концом пустого диапазона (cbegin() == cend()
для пустого диапазона).
Замечания
При возвращаемом значении cbegin
элементы в диапазоне не могут быть изменены.
Эту функцию-член можно использовать вместо функции-члена begin()
, чтобы гарантировать, что возвращаемое значение будет const_iterator
. Как правило, он используется с ключевым словом вычета auto
типов, как показано в следующем примере. В примере Container
следует рассматривать как изменяемый (не-const
) контейнер любого вида, который поддерживает begin()
и cbegin()
.
auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator
array::cend
Возвращает итератор const
, который обращается к месту, следующему сразу за последним элементом в диапазоне.
const_iterator cend() const noexcept;
Возвращаемое значение
Итератор с произвольным доступом, который указывает конец диапазона.
Замечания
cend
используется для проверки того, прошел ли итератор конец диапазона.
Эту функцию-член можно использовать вместо функции-члена end()
, чтобы гарантировать, что возвращаемое значение будет const_iterator
. Как правило, он используется с ключевым словом вычета auto
типов, как показано в следующем примере. В примере Container
следует рассматривать как изменяемый (не-const
) контейнер любого вида, который поддерживает end()
и cend()
.
auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();
// i2 is Container<T>::const_iterator
Возвращаемое cend
значение не должно быть разоменовывано.
array::const_iterator
Тип постоянного итератора для управляемой последовательности.
typedef implementation-defined const_iterator;
Замечания
Этот тип описывает объект, который можно использовать в качестве постоянного итератора с произвольным доступом для управляемой последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> MyArray;
int main()
{
MyArray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
std::cout << "it1:";
for (MyArray::const_iterator it1 = c0.begin();
it1 != c0.end();
++it1) {
std::cout << " " << *it1;
}
std::cout << std::endl;
// display first element " 0"
MyArray::const_iterator it2 = c0.begin();
std::cout << "it2:";
std::cout << " " << *it2;
std::cout << std::endl;
return (0);
}
it1: 0 1 2 3
it2: 0
array::const_pointer
Тип постоянного указателя на элемент.
typedef const Ty *const_pointer;
Замечания
Этот тип описывает объект, который можно использовать в качестве постоянного указателя на элементы последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
Myarray::const_pointer ptr = &*c0.begin();
std::cout << " " << *ptr;
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::const_reference
Тип постоянной ссылки на элемент.
typedef const Ty& const_reference;
Замечания
Тип описывает объект, который можно использовать в качестве постоянной ссылки на элемент управляемой последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
Myarray::const_reference ref = *c0.begin();
std::cout << " " << ref;
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::const_reverse_iterator
Тип постоянного обратного итератора для управляемой последовательности.
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
Замечания
Этот тип описывает объект, который можно использовать в качестве постоянного обратного итератора для управляемой последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display last element " 3"
Myarray::const_reverse_iterator it2 = c0.rbegin();
std::cout << " " << *it2;
std::cout << std::endl;
return (0);
}
0 1 2 3
3
array::crbegin
Возвращает константный итератор, который указывает на первый элемент в обращенном массиве.
const_reverse_iterator crbegin() const;
Возвращаемое значение
Константный обратный итератор произвольного доступа, указывающий на первый элемент в обращенном массиве или на элемент, который был последним в массиве до его обращения.
Замечания
Возвращаемое значение crbegin
объекта массива не может быть изменено.
Пример
#include <array>
#include <iostream>
int main( )
{
using namespace std;
array<int, 2> v1 = {1, 2};
array<int, 2>::iterator v1_Iter;
array<int, 2>::const_reverse_iterator v1_rIter;
v1_Iter = v1.begin( );
cout << "The first element of array is "
<< *v1_Iter << "." << endl;
v1_rIter = v1.crbegin( );
cout << "The first element of the reversed array is "
<< *v1_rIter << "." << endl;
}
The first element of array is 1.
The first element of the reversed array is 2.
array::crend
Возвращает константный итератор, который обращается к месту, следующему за последним элементом в обращенном массиве.
const_reverse_iterator crend() const noexcept;
Возвращаемое значение
Константный обратный итератор произвольного доступа, адресующий расположение после последнего элемента в обращенном массиве (расположение перед первым элементом в необращенном массиве).
Замечания
crend
используется с обратным массивом так же, как array::cend
и с массивом.
Возвращаемое значение crend
(подходящее уменьшение), объект массива не может быть изменен.
crend
используется, чтобы проверить, достиг ли обратный итератор конца массива.
Возвращаемое crend
значение не должно быть разоменовывано.
Пример
#include <array>
#include <iostream>
int main( )
{
using namespace std;
array<int, 2> v1 = {1, 2};
array<int, 2>::const_reverse_iterator v1_rIter;
for ( v1_rIter = v1.rbegin( ) ; v1_rIter != v1.rend( ) ; v1_rIter++ )
cout << *v1_rIter << endl;
}
2
1
array::data
Получает адрес первого элемента.
Ty *data();
const Ty *data() const;
Замечания
Функции-члены возвращают адрес первого элемента в управляемой последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
Myarray::pointer ptr = c0.data();
std::cout << " " << *ptr;
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::difference_type
Тип расстояния со знаком между двумя элементами.
typedef std::ptrdiff_t difference_type;
Замечания
Тип целого числа со знаком описывает объект, который может представлять разницу между адресами любых двух элементов в управляемой последовательности. Это синоним типа std::ptrdiff_t
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display distance first-last " -4"
Myarray::difference_type diff = c0.begin() - c0.end();
std::cout << " " << diff;
std::cout << std::endl;
return (0);
}
0 1 2 3
-4
array::empty
Проверяет отсутствие элементов.
constexpr bool empty() const;
Замечания
Функция-член возвращает значение true, только если N == 0
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display whether c0 is empty " false"
std::cout << std::boolalpha << " " << c0.empty();
std::cout << std::endl;
std::array<int, 0> c1;
// display whether c1 is empty " true"
std::cout << std::boolalpha << " " << c1.empty();
std::cout << std::endl;
return (0);
}
0 1 2 3
false
true
array::end
Задает конец управляемой последовательности.
reference end();
const_reference end() const;
Замечания
Первые две функции-члена возвращают итератор произвольного доступа, указывающий на место сразу за концом последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display last element " 3"
Myarray::iterator it2 = c0.end();
std::cout << " " << *--it2;
std::cout << std::endl;
return (0);
}
0 1 2 3
3
array::fill
Удаляет массив и копирует указанные элементы в пустой массив.
void fill(const Type& val);
Параметры
val
Значение элемента, вставляемого в массив.
Замечания
fill
заменяет каждый элемент массива на указанное значение.
Пример
#include <array>
#include <iostream>
int main()
{
using namespace std;
array<int, 2> v1 = { 1, 2 };
cout << "v1 = ";
for (const auto& it : v1)
{
std::cout << " " << it;
}
cout << endl;
v1.fill(3);
cout << "v1 = ";
for (const auto& it : v1)
{
std::cout << " " << it;
}
cout << endl;
}
array::front
Обращается к первому элементу.
reference front();
constexpr const_reference front() const;
Замечания
Функции-члены возвращают ссылку на первый элемент управляемой последовательности, который должен быть не пустым.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
std::cout << " " << c0.front();
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::iterator
Тип итератора для управляемой последовательности.
typedef implementation-defined iterator;
Замечания
Этот тип описывает объект, который можно использовать в качестве итератора с произвольным доступом для управляемой последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> MyArray;
int main()
{
MyArray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
std::cout << "it1:";
for (MyArray::iterator it1 = c0.begin();
it1 != c0.end();
++it1) {
std::cout << " " << *it1;
}
std::cout << std::endl;
// display first element " 0"
MyArray::iterator it2 = c0.begin();
std::cout << "it2:";
std::cout << " " << *it2;
std::cout << std::endl;
return (0);
}
it1: 0 1 2 3
it2: 0
array::max_size
Подсчитывает количество элементов.
constexpr size_type max_size() const;
Замечания
Функция-член возвращает значение N
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display (maximum) size " 4"
std::cout << " " << c0.max_size();
std::cout << std::endl;
return (0);
}
0 1 2 3
4
array::operator[]
Обращается к элементу в указанной позиции.
reference operator[](size_type off);
constexpr const_reference operator[](size_type off) const;
Параметры
off
Позиция элемента, к которому осуществляется доступ.
Замечания
Функции-члены возвращают ссылку на элемент управляемой последовательности в позиции off
. Если эта позиция недопустима, поведение станет неопределенным.
Существует также функция, не get
являющейся членом, чтобы получить ссылку на элемент объекта array
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display odd elements " 1 3"
std::cout << " " << c0[1];
std::cout << " " << c0[3];
std::cout << std::endl;
return (0);
}
0 1 2 3
1 3
array::operator=
Заменяет управляемую последовательность.
array<Value> operator=(array<Value> right);
Параметры
right
Контейнер для копирования.
Замечания
Оператор-член присваивает каждому элементу right
соответствующий элемент управляемой последовательности, а затем возвращает *this
. Он позволяет заменить управляемую последовательность копией управляемой последовательности в right
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
Myarray c1;
c1 = c0;
// display copied contents " 0 1 2 3"
// display contents " 0 1 2 3"
for (auto it : c1)
{
std::cout << " " << it;
}
std::cout << std::endl;
return (0);
}
0 1 2 3
0 1 2 3
array::pointer
Тип указателя на элемент.
typedef Ty *pointer;
Замечания
Этот тип описывает объект, который можно использовать в качестве указателя на элементы последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
Myarray::pointer ptr = &*c0.begin();
std::cout << " " << *ptr;
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::rbegin
Задает начало обратной управляемой последовательности.
reverse_iterator rbegin()noexcept;
const_reverse_iterator rbegin() const noexcept;
Замечания
Первые две функции-члена возвращают обратный итератор, указывающий на место сразу за концом управляемой последовательности. Таким образом, задается начало обратной последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display last element " 3"
Myarray::const_reverse_iterator it2 = c0.rbegin();
std::cout << " " << *it2;
std::cout << std::endl;
return (0);
}
0 1 2 3
3
array::reference
Тип ссылки на элемент.
typedef Ty& reference;
Замечания
Тип описывает объект, который можно использовать в качестве ссылки на элемент управляемой последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
Myarray::reference ref = *c0.begin();
std::cout << " " << ref;
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::rend
Задает конец обратной управляемой последовательности.
reverse_iterator rend()noexcept;
const_reverse_iterator rend() const noexcept;
Замечания
Функции-члены возвращают обратный итератор, указывающий на первый элемент последовательности (или непосредственно за окончание пустой последовательности)). Таким образом, он задает конец обратной последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display first element " 0"
Myarray::const_reverse_iterator it2 = c0.rend();
std::cout << " " << *--it2;
std::cout << std::endl;
return (0);
}
0 1 2 3
0
array::reverse_iterator
Тип обратного итератора для управляемой последовательности.
typedef std::reverse_iterator<iterator> reverse_iterator;
Замечания
Этот тип описывает объект, который можно использовать в качестве обратного итератора для управляемой последовательности.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display last element " 3"
Myarray::reverse_iterator it2 = c0.rbegin();
std::cout << " " << *it2;
std::cout << std::endl;
return (0);
}
0 1 2 3
3
array::size
Подсчитывает количество элементов.
constexpr size_type size() const;
Замечания
Функция-член возвращает значение N
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display size " 4"
std::cout << " " << c0.size();
std::cout << std::endl;
return (0);
}
0 1 2 3
4
array::size_type
Тип беззнакового расстояния между двумя элементами.
typedef std::size_t size_type;
Замечания
Целочисленный тип без знака описывает объект, который может представлять длину любой управляемой последовательности. Это синоним типа std::size_t
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display distance last-first " 4"
Myarray::size_type diff = c0.end() - c0.begin();
std::cout << " " << diff;
std::cout << std::endl;
return (0);
}
0 1 2 3
4
array::swap
Выполняет обмен содержимым между этим и другим массивом.
void swap(array& right);
Параметры
right
Массив для обмена содержимым.
Замечания
Функция-член переключает управляемые последовательности между *this
и справа. Он выполняет назначения элементов и вызовы конструктора пропорционально N
.
Существует также функция, не являющейся swap
членом, доступная для замены двух array
экземпляров.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
Myarray c1 = { 4, 5, 6, 7 };
c0.swap(c1);
// display swapped contents " 4 5 6 7"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
swap(c0, c1);
// display swapped contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
return (0);
}
0 1 2 3
4 5 6 7
0 1 2 3
array::value_type
Тип элемента.
typedef Ty value_type;
Замечания
Этот тип является синонимом для параметра шаблона Ty
.
Пример
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
std::cout << " " << it;
}
std::cout << std::endl;
// display contents " 0 1 2 3"
for (const auto& it : c0)
{
Myarray::value_type val = it;
std::cout << " " << val;
}
std::cout << std::endl;
return (0);
}
0 1 2 3
0 1 2 3