>  기사  >  백엔드 개발  >  함수에서 가변 크기의 std::배열을 처리하는 방법: 간단한 접근 방식?

함수에서 가변 크기의 std::배열을 처리하는 방법: 간단한 접근 방식?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 13:05:02860검색

How to Handle std::arrays of Variable Size in Functions: A Straightforward Approach?

알 수 없는 크기의 std::array를 함수에 전달

문제:

유형은 알려져 있지만 크기는 가변적인 std::array에서 작동하는 함수를 만드는 방법은 무엇입니까?

예:

<code class="cpp">// hypothetical example
void mulArray(std::array<int, ?>& arr, const int multiplier) {
    for(auto& e : arr) {
        e *= multiplier;
    }
}</code>
<code class="cpp">// imaginary arrays with values
std::array<int, 17> arr1;
std::array<int, 6> arr2;
std::array<int, 95> arr3;

mulArray(arr1, 3);
mulArray(arr2, 5);
mulArray(arr3, 2);</code>

질문 :

C 스타일 배열과 유사하게 이 작업을 수행하는 간단한 접근 방식이 있습니까?

답변:

안타깝게도 그렇지 않습니다. 알 수 없는 크기의 std::array를 전달하려면 함수 템플릿이나 std::Vectors와 같은 대체 컨테이너를 사용해야 합니다.

템플릿 솔루션:

<code class="cpp">template<std::size_t SIZE>
void mulArray(std::array<int, SIZE>& arr, const int multiplier) {
    for(auto& e : arr) {
        e *= multiplier;
    }
}</code>

실시간 예시: https://godbolt.org/z/T1d1n3vrM

위 내용은 함수에서 가변 크기의 std::배열을 처리하는 방법: 간단한 접근 방식?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.