array
Класс (стандартная библиотека C++)
Описывает объект, управляющий последовательностью из элементов N
типа Ty
. Последовательность хранится как массив Ty
в объекте array<Ty, N>
.
Синтаксис
template <class Ty, std::size_t N>
class array;
Параметры
Ty
Тип элемента.
N
Число элементов.
Элементы
Определение типа | Описание |
---|---|
const_iterator |
Тип постоянного итератора для управляемой последовательности. |
const_pointer |
Тип постоянного указателя на элемент. |
const_reference |
Тип постоянной ссылки на элемент. |
const_reverse_iterator |
Тип постоянного обратного итератора для управляемой последовательности. |
difference_type |
Тип расстояния со знаком между двумя элементами. |
iterator |
Тип итератора для управляемой последовательности. |
pointer |
Тип указателя на элемент. |
reference |
Тип ссылки на элемент. |
reverse_iterator |
Тип обратного итератора для управляемой последовательности. |
size_type |
Тип беззнакового расстояния между двумя элементами. |
value_type |
Тип элемента. |
Функция-член | Описание |
---|---|
array |
Создает объект массива. |
assign |
(Устарело. Используйте fill .) Заменяет все элементы. |
at |
Обращается к элементу в указанной позиции. |
back |
Обращается к последнему элементу. |
begin |
Задает начало управляемой последовательности. |
cbegin |
Возвращает постоянный итератор произвольного доступа, указывающий на первый элемент в массиве. |
cend |
Возвращает постоянный итератор произвольного доступа, указывающий на предпоследнюю позицию массива. |
crbegin |
Возвращает константный итератор, который указывает на первый элемент в обращенном массиве. |
crend |
Возвращает постоянный итератор, который указывает на последний элемент в обратном массиве. |
data |
Получает адрес первого элемента. |
empty |
Проверяет наличие элементов. |
end |
Задает конец управляемой последовательности. |
fill |
Заменяет все элементы указанным значением. |
front |
Обращается к первому элементу. |
max_size |
Подсчитывает количество элементов. |
rbegin |
Задает начало обратной управляемой последовательности. |
rend |
Задает конец обратной управляемой последовательности. |
size |
Подсчитывает количество элементов. |
swap |
Меняет местами содержимое двух контейнеров. |
Оператор | Описание |
---|---|
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
. Typically, it's used with the auto
type deduction keyword, as shown in the following example. В этом примере предположим, что 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