std::inplace_vector<T,N>::data
constexpr T* data() noexcept;
|
(1) | (desde C++26) |
constexpr const T* data() const noexcept;
|
(2) | (desde C++26) |
Devuelve un puntero al arreglo subyacente que sirve como almacenamiento de 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).
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) |