Namespaces
Variants

std::inplace_vector<T,N>:: data

From cppreference.net

constexpr T * data ( ) noexcept ;
(1) (desde C++26)
constexpr const T * data ( ) const noexcept ;
(2) (desde C++26)

Devuelve un puntero al array subyacente que sirve como almacenamiento de elementos. El puntero es tal que el rango [ data ( ) , data ( ) + size() ) es siempre un rango válido

Si * this está vacío, data() no es desreferenciable.

Contenidos

Valor de retorno

Puntero al almacenamiento subyacente de elementos. Para contenedores no vacíos, el puntero devuelto se compara igual a la dirección del primer elemento, es decir data ( ) == std:: addressof ( front ( ) ) es true .

Complejidad

Constante.

Notas

Si * this está vacío, data() puede o no devolver un puntero nulo.

Ejemplo

#include <cstddef>
#include <iostream>
#include <span>
#include <inplace_vector>
void pointer_func(const int* 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<const int> data) // since C++20
{
    std::cout << "data = ";
    for (const int e : data)
        std::cout << e << ' ';
    std::cout << '\n';
}
int main()
{
    std::inplace_vector<int, 4> container{1, 2, 3, 4};
    // Prefer container.data() over &container[0]
    pointer_func(container.data(), container.size());
    // std::span is a safer alternative to separated pointer/size.
    span_func({container.data(), container.size()});
}

Salida:

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

Véase también

acceder al primer elemento
(función miembro pública)
acceder al último elemento
(función miembro pública)
devuelve el número de elementos
(función miembro pública)
acceder al elemento especificado
(función miembro pública)
(C++20)
una vista no propietaria sobre una secuencia contigua de objetos
(plantilla de clase)
(C++17)
obtiene el puntero al array subyacente
(plantilla de función)