std::array::data
De cppreference.com
T* data() noexcept; |
(desde C++11) (hasta C++17) |
|
constexpr T* data() noexcept; |
(desde C++17) | |
const T* data() const noexcept; |
(desde C++11) (hasta C++17) |
|
constexpr const T* data() const noexcept; |
(desde C++17) | |
Devuelve un puntero al array subyacente que sirve como almacenamiento para los elementos. El puntero es tal que el rango [data(); data() + size()) es siempre un rango válido, incluso si el contenedor está vacío (data() no es desreferenciable en ese caso).
Parámetros
(Ninguno)
Valor de retorno
Un puntero al almacenamiento de elementos subyacente. Para contenedores que no están vacíos, el puntero devuelto se compara igual a la dirección del primer elemento.
Complejidad
Constante.
Notas
Si size() es 0, data() puede o no devolver un puntero nulo.
Ejemplo
Ejecuta este código
#include <cstddef>
#include <iostream>
#include <array>
void func_puntero(const int* p, std::size_t size)
{
std::cout << "datos = ";
for (std::size_t i = 0; i < size; ++i)
std::cout << p[i] << ' ';
std::cout << '\n';
}
int main()
{
std::array<int,4> contenedor { 1, 2, 3, 4 };
// Preferir contenedor.data() a &contenedor[0]
func_puntero(contenedor.data(), contenedor.size());
}
Salida:
datos = 1 2 3 4
