알 수 없는 크기의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!