Namespaces
Variants

std::span<T,Extent>:: operator[]

From cppreference.net
constexpr reference operator [ ] ( size_type idx ) const ;
(seit C++20)

Gibt eine Referenz auf das idx te Element der Sequenz zurück.

Falls idx < size ( ) false ist, ist das Verhalten undefiniert.

(bis C++26)

Falls idx < size ( ) false ist:

  • Falls die Implementierung gehärtet ist, tritt eine Vertragsverletzung auf. Zudem ist das Verhalten undefiniert, falls der Vertragsverletzungs-Handler unter "Observe"-Auswertungssemantik zurückkehrt.
  • Falls die Implementierung nicht gehärtet ist, ist das Verhalten undefiniert.
(seit C++26)

Inhaltsverzeichnis

Parameter

idx - der Index des zu zugreifenden Elements

Rückgabewert

data ( ) [ idx ]

Exceptions

Wirft nichts.

Beispiel

#include <cstddef>
#include <iostream>
#include <span>
#include <utility>
void reverse(std::span<int> span)
{
    for (std::size_t i = 0, j = std::size(span); i < j; ++i)
    {
        --j;
        std::swap(span[i], span[j]);
    }
}
void print(const std::span<const int> span)
{
    for (int element : span)
        std::cout << element << ' ';
    std::cout << '\n';
}
int main()
{
    int data[]{1, 2, 3, 4, 5};
    print(data);
    reverse(data);
    print(data);
}

Ausgabe:

1 2 3 4 5
5 4 3 2 1

Siehe auch

(C++26)
Zugriff auf bestimmtes Element mit Grenzprüfung
(öffentliche Elementfunktion)
Direkter Zugriff auf den zugrundeliegenden zusammenhängenden Speicher
(öffentliche Elementfunktion)
Gibt die Anzahl der Elemente zurück
(öffentliche Elementfunktion)
Konvertiert einen span in eine Ansicht seiner zugrundeliegenden Bytes
(Funktionstemplate)