< <을 정의하고 싶습니다. STL 알고리즘과 같은 방식으로, 컨테이너의 첫 번째 요소와 마지막 요소를 인수로 사용하여 요소 시퀀스에서 작동합니다. . 단 하나의 인수를 취하는 것과는 대조적으로 컨테이너 자체 (예 :시퀀스의 ostream << 연산자를 오버로드하는 중
std::ostream& operator<< (std::ostream &out, std::list inList);
난 단지 (I 등 목록, 벡터, 배열을 사용하고 내가 두 개의 인수, inList.begin으로 함수를 호출해야하는 경우에 관계없이 일하는 것이 하나 개의 함수를 작성해야하는 그래서) and inList.end()
문제는 연산자 < <은 단 하나의 인수 만 사용한다는 것입니다. 이것을 극복하는 가장 좋은 방법은 무엇입니까?
편집 : 답변 해 주셔서 감사합니다. 컨테이너의 하위 시퀀스 (STL 알고리즘과 같은)를 비롯하여 다양한 요소를 인쇄하는 기능을 선호하는 것이 더 분명했을 것입니다. 예 : 벡터 v 5 개 요소가있는 경우,이 같은 출력 v.begin에서 일련의() v.end하는()를주고 그들 모두를 인쇄 할 수 있으면 좋겠다 :
[element1 element2 element3 element4 element5]
하지만 난이도를 인쇄 할 수 있으면 좋겠다 범위는 [v.begin(), v.begin() + 3)
[element1 element2 element3]
당신의 제안 답변이 경우 작동겠습니까에서, 세 만 먼저?
1) 함수 템플릿이 아니라 함수 템플릿을 작성해야합니다. 2) 아마도'std :: begin()','std :: end()'가 더 좋을까요? –
@ Robᵩ 1) 아마 2) 왜 메이저 컴파일러에 대한 지원이 있는지 모르겠습니까? –
2)'std :: begin()'은'std ::'컨테이너 외에도 배열을 전문화하기 때문에. –