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

std::array::data

Материал из cppreference.com
< cpp‎ | container‎ | array
 
 
 
 
T* data()noexcept;
(начиная с C++11)
(до C++17)
constexpr T* data()noexcept;
(начиная с C++17)
const T* data()constnoexcept;
(начиная с C++11)
(до C++17)
constexprconst T* data()constnoexcept;
(начиная с C++17)

Возвращает указатель на внутренний массив, выступающий в качестве хранилища элементов. Указатель таков, что диапазон [data(); data() + size()) всегда корректный, даже если контейнер пуст (Указатель data() в таком случае не может быть разыменован).

Содержание

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

(нет)

[править]Возвращаемое значение

Указатель на внутренний массив. Для непустых контейнеров, возвращаемый указатель является равным адресу первого элемента.

[править]Сложность

Константная.

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

Если size() равен 0, не гарантируется, что data() вернёт нулевой указатель.

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

#include <cstddef>#include <iostream>#include <span>#include <array>   void pointer_func(constint* p, std::size_t size){std::cout<<"data = ";for(std::size_t i =0; i < size;++i)std::cout<< p[i]<<' ';std::cout<<'\n';}   void span_func(std::span<constint> data)// Начиная с C++20{std::cout<<"data = ";for(constint e : data)std::cout<< e <<' ';std::cout<<'\n';}   int main(){std::array<int,4> container {1, 2, 3, 4};   // Использование container.data() предпочтительнее, чем &container[0] pointer_func(container.data(), container.size());   // std::span (C++20) - более безопасная альтернатива указателю и размеру по отдельности. span_func({container.data(), container.size()});}

Вывод:

data = 1 2 3 4 data = 1 2 3 4

[править]См. также

(C++11)
предоставляет доступ к первому элементу
(public функция-элемент)[править]
(C++11)
предоставляет доступ к последнему элементу
(public функция-элемент)[править]
(C++11)
возвращает количество элементов
(public функция-элемент)[править]
(C++20)
не владеющее представление непрерывной последовательности объектов
(шаблон класса)[править]
close