2011-12-13 2 views
0

요즘에는 사용자가 메서드에 데이터 집합을 전달해야하는 몇 가지 사례가있었습니다. 매개 변수를 const std::vector<stuff>& (또는 특정 컨테이너 나 배열)로 지정하는 것은 매우 일반적이지 않은 것처럼 보입니다.모범 사례 : 데이터 배열 전달

데이터 그룹을 일반적으로 메소드에 전달할 수있는 방법이 있습니까?

답변

3

두 개의 반복기를 전달하거나 C++ 11을 사용하여 범위를 사용할 수 있습니다. 이것이 C++ 알고리즘이 일반적으로하는 방법입니다.

편집 : 새로운 범위 기반 루프에 대해 알고리즘 http://en.cppreference.com/w/cpp/language/range-for이 알고리즘의 일반적인 범위를 잘못 기억했습니다. 범용 알고리즘의 범위를 나타 내기 위해 두 개의 반복기를 전달하십시오.

+0

당신이 말하는이 "범위"사업이란 무엇입니까? 이제 나는 궁금해. –

+0

왜 이런 일이 일어나지 않았는지 모르겠군요. 나는 범위 물건에 Kerrek와 함께있다, 당신이 말하고있는 정확하게 것을위한 링크를 알아 들었다? – David

0

물론. 반복자를 전달할 수 있습니다.

0

마크 B는 범위 기반 루프를 의미합니다 (http://www.cprogramming.com/c++11/c++11-ranged-for-loop.html). 당신은 begin()과 end() begin 연산자를 초기화 연산자 인 ++, 불평등 연산자! =와 역 참조 연산자를 제공해야합니다. *

그러나 두 개의 반복자를 전달하기를 좋아합니다. 일반 배열에서도 작동합니다. 배열의 첫 번째 요소와 배열의 마지막 요소에 대한 포인터를 전달하기 만하면됩니다.