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 ;
(C++17부터)

저장된 포인터가 가리키는 배열에 인덱스로 접근합니다.

저장된 포인터가 null이거나 idx 가 음수인 경우 동작은 정의되지 않습니다.

만약 T ( shared_ptr 의 템플릿 매개변수)가 배열 타입 U[N] 인 경우, idx N 보다 작아야 하며, 그렇지 않을 경우 동작은 정의되지 않습니다.

목차

매개변수

idx - 배열 인덱스

반환값

배열의 idx -번째 요소에 대한 참조, 즉 get ( ) [ idx ] 를 반환합니다.

예외

아무것도 던지지 않습니다.

비고

T 가 배열 타입이 아닌 경우, 이 함수가 선언되는지 여부는 명시되지 않습니다. 함수가 선언되는 경우, 반환 타입이 무엇인지 명시되지 않으나 함수의 선언(정의는 아닐 수 있음)이 합법적임은 보장됩니다.

예제

#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';
}

출력:

0 1 2 3 4 5 6 7 8 9

참고 항목

저장된 포인터를 반환합니다
(public member function)