Namespaces
Variants

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

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
element_type & operator [ ] ( std:: ptrdiff_t idx ) const ;
(seit C++17)

Greifen Sie auf das Array zu, auf das der gespeicherte Zeiger zeigt.

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, idx muss kleiner als N sein, andernfalls ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

idx - der Array-Index

Rückgabewert

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

Exceptions

Wirft nichts.

Anmerkungen

Wenn T kein Array-Typ ist, ist nicht spezifiziert, ob diese Funktion deklariert wird. Falls die Funktion deklariert wird, ist nicht spezifiziert, welchen Rückgabetyp sie hat, außer dass die Deklaration (wenn auch nicht notwendigerweise die Definition) der Funktion garantiert legal ist.

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

Siehe auch

gibt den gespeicherten Zeiger zurück
(öffentliche Elementfunktion)