Namespaces
Variants

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

Von de.cppreference.net

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

Gibt einen Zeiger auf das zugrunde liegende Array zurück, das als Elementspeicher dient. Der Zeiger ist so beschaffen, dass der Bereich [data(), data() + size()) immer ein gültiger Bereich ist, auch wenn der Container leer ist (data() in diesem Fall nicht dereferenzierbar ist).

Rückgabewert

Zeiger auf den zugrundeliegenden Elementspeicher. Für nicht-leere Container vergleicht sich der zurückgegebene Zeiger gleich mit der Adresse des ersten Elements, das heißt data ( ) == std:: addressof ( front ( ) ) ist true .

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 <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()});
}

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 spezifisches Element
(öffentliche Elementfunktion)
(C++20)
eine nicht-besitzende Ansicht über eine zusammenhängende Objektsequenz
(Klassentemplate)
(C++17)
erhält den Zeiger auf das zugrundeliegende Array
(Funktionstemplate)