Namespaces
Variants

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

From cppreference.net

T * data ( ) noexcept ;
(1) (seit C++11)
(constexpr seit C++17)
const T * data ( ) const noexcept ;
(2) (seit C++11)
(constexpr seit C++17)

Gibt einen Zeiger auf das zugrundeliegende Array zurück, das als Elementspeicher dient. Der Zeiger ist so beschaffen, dass der Bereich [ data ( ) , data ( ) + size() ) stets ein gültiger Bereich ist.

Wenn * this leer ist, data() ist nicht dereferenzierbar.

Inhaltsverzeichnis

Rückgabewert

Zeiger auf den zugrundeliegenden Element-Speicher. Für nicht-leere Container vergleicht sich der zurückgegebene Zeiger gleich mit der Adresse des ersten Elements.

Komplexität

Konstante.

Hinweise

Wenn * this leer ist, data() kann möglicherweise einen Nullzeiger zurückgeben oder auch nicht.

Beispiel

#include <cstddef>
#include <iostream>
#include <span>
#include <array>
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::array<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()});
}

Ausgabe:

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

Siehe auch

Zugriff auf das erste Element
(öffentliche Elementfunktion)
Zugriff auf das letzte Element
(öffentliche Elementfunktion)
gibt die Anzahl der Elemente zurück
(öffentliche Elementfunktion)
Zugriff auf das angegebene Element
(öffentliche Elementfunktion)
(C++20)
eine nicht-besitzende Ansicht über eine zusammenhängende Folge von Objekten
(Klassentemplate)
(C++17)
erhält den Zeiger auf das zugrundeliegende Array
(Funktionstemplate)