Namensräume
Varianten
Aktionen

std::shared_ptr<T>::operator[]

Von cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
element_type& operator[]( std::ptrdiff_t idx ) const;
(seit C++17)

Greift auf das durch den gespeicherten Zeiger auf das Array verwiesene Element zu.

Das Verhalten ist undefiniert, wenn der gespeicherte Zeiger null ist oder wenn idx negativ ist.

Wenn T (der Template-Parameter von shared_ptr) ein Array-Typ U[N] ist, muss idx kleiner als N sein, andernfalls ist das Verhalten undefiniert.

Inhalt

[bearbeiten] Parameter

idx - Der Array-Index

[bearbeiten] Rückgabewert

Eine Referenz auf das idx-te Element des Arrays, d.h. get()[idx].

[bearbeiten] Ausnahmen

Wirft nichts.

[bearbeiten] Anmerkungen

Wenn T kein Array-Typ ist, ist nicht spezifiziert, ob diese Funktion deklariert ist. Wenn die Funktion deklariert ist, ist nicht spezifiziert, was ihr Rückgabetyp ist, außer dass die Deklaration (obwohl nicht notwendigerweise die Definition) der Funktion garantiert gültig ist.

[bearbeiten] Beispiel

#include <cstddef>
#include <iostream>
#include <memory>
 
int main()
{
    const std::size_t arr_size = 10;
    std::shared_ptr<int[]> pis(new int[10]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
    for (std::size_t i = 0; i < arr_size; ++i)
        std::cout << pis[i] << ' ';
    std::cout << '\n';
}

Ausgabe

0 1 2 3 4 5 6 7 8 9

[bearbeiten] Siehe auch

gibt den gespeicherten Zeiger zurück
(public member function) [edit]