C 11에서 비멤버 시작 및 종료 함수 사용
표준 컨테이너에서 시작 및 종료되는 멤버 함수가 있음에도 불구하고 C 11 같은 이름의 비멤버 함수를 도입했습니다. 이러한 무료 함수는 회원 버전과 유사하게 수행되지만 여러 가지 장점을 제공합니다.
일반 프로그래밍:
비회원 버전에서는 다음을 조작할 수 있어 일반 프로그래밍이 가능합니다. 다양한 데이터 구조에 걸친 반복자. 예를 들어 멤버 시작 및 종료 기능이 없는 표준 컨테이너와 C-배열을 모두 처리하는 데 사용할 수 있습니다.
객체 유형에서 분리:
무료 함수를 사용하면 특정 개체 유형에서 코드를 분리할 수 있습니다. 이는 시작과 끝의 대체 또는 비표준 구현이 있는 컨테이너로 작업할 때 유용할 수 있으며, 정확한 유형을 알지 못해도 이러한 컨테이너를 일관되게 처리할 수 있습니다.
향상된 가독성:
무료 함수는 불필요한 개체 이름을 제거하여 코드 가독성을 향상시킬 수 있습니다. 다음과 같이 작성하는 대신:
<code class="cpp">auto i = v.begin(); auto e = v.end();</code>
다음과 같이 작성할 수 있습니다.
<code class="cpp">auto i = std::begin(v); auto e = std::end(v);</code>
이는 루프나 복잡한 표현식에서 여러 컨테이너를 처리할 때 특히 유용할 수 있습니다.
확장성:
무료 기능을 쉽게 확장하여 맞춤형 컨테이너를 지원할 수 있습니다. Herb Sutter가 언급했듯이 이는 멤버 시작 및 끝 기능이 없을 수 있는 비표준 컨테이너에 유리할 수 있습니다.
비멤버 함수를 사용해야 하는 경우:
일반적으로 다음과 같은 경우에는 비멤버 std::begin 및 std::end 함수를 사용하는 것이 좋습니다.
위 내용은 언제 멤버 함수에 `std::begin` 및 `std::end`를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!