개인 재정 C ++ 프로그래밍 :리스트를 통해 당신의 방식을 만드십시오 - 더미

C ++ 프로그래밍 :리스트를 통해 당신의 방식을 만드십시오 - 더미

비디오: Is Programming just about the Tools? 2024

비디오: Is Programming just about the Tools? 2024
Anonim

C ++ 프로그래머는 각 요소의 인덱스를 제공하여 배열을 반복합니다. 그러나이 기술은 임의 액세스를 허용하지 않는 list 와 같은 컨테이너에서는 작동하지 않습니다. getFirst () 및 getNext () 와 같은 메소드를 기반으로하는 솔루션을 상상할 수 있습니다. 그러나 표준 템플릿 라이브러리의 설계자는 모든 유형의 컨테이너를 트래버스하는 공통 방법을 제공하고자했습니다.

표준 템플릿 라이브러리는 이터레이터를 정의합니다.

반복자 는 컨테이너의 멤버를 가리키는 객체입니다. 일반적으로 모든 반복기는 다음 함수를 지원합니다.

  • 클래스는 컬렉션의 첫 번째 멤버를 가리키는 반복자를 반환 할 수 있습니다.

  • 반복자는 한 구성원에서 다음 구성원으로 이동할 수 있습니다.

  • 반복자는 목록의 끝에 도달하면 표시를 반환합니다.

  • 프로그램은 반복자가 가리키는 요소를 검색 할 수 있습니다.

표준 템플릿 라이브러리는 역순으로리스트를 뒤적으로 옮길 수있는 역 반복자도 제공합니다. iterator에 관한 모든 것은 reverse iterator에 똑같이 적용됩니다.

리스트 를 반복하는 데 필요한 코드는 벡터 (두 가지 예를 든다)를 통과하는 데 필요한 코드와 다릅니다. 그러나 반복자는 이러한 세부 사항을 숨 깁니다.

begin () 메소드는리스트의 첫 번째 요소를 가리키는 반복자를 반환한다. 간접 연산자 * ()는 반복자가 가리키는 객체에 대한 참조를 가져옵니다. ++ 연산자는 반복자를 목록의 다음 요소로 이동합니다.

반복자가 end () 에 의해 반환 된 값과 같을 때까지 프로그램은 목록을 통해 계속 증가합니다. 다음 코드 스 니펫은 학생 목록 시작 부분에서 시작하여 각 이름을 표시합니다.

void displayStudents (list & students) {// 목록 목록의 첫 번째 // 요소를 가리키는 반복자를 할당합니다.:: 반복자 iter = 학생. 시작 (); // iterator가리스트의 끝에 도달 할 때까지리스트를 반복한다 while (iter! = students.end ()) {// iterator가 Student를 찾는다 Student s = * iter; cout << s. sName << endl; // iterator를 다음 요소로 옮깁니다 // iter ++;}}

반복자에 대한 선언은 매우 복잡 할 수 있습니다. 이것은 아마도 '11 표준으로 소개 된 auto 선언을위한 가장 좋은 설명 일 것이다. (auto iter = students. begin (); iter! = students. end (); iter ++) {cout

이것은 메소드리스트에 의해 리턴 된 모든 타입의 반복자로 iter를 선언한다.: begin () 

, 는 이전 코드 스 니펫에 나타난 고문 선언을 피한다.얼마나 멋진가!

C ++ 프로그래밍 :리스트를 통해 당신의 방식을 만드십시오 - 더미

편집자의 선택

왜 IOS 응용 프로그램을 개발합니까? - 인형

왜 IOS 응용 프로그램을 개발합니까? - 인형

IOS 앱을 개발해야하는 이유는 무엇입니까? 넌 할 수 있으니까. 왜냐하면 그들은 재미 있기 때문입니다. 그리고 시간이 왔기 때문에. iOS 앱은 계속해서 파열되고 있으며, 많은 개발자들이이 앱을 성공적으로 사용하고 있습니다. iOS 앱을 개발하는 것은 시간 투자가 거의없이 몇 년 동안 자신의 경력에서 가장 재미있을 수 있습니다.

Windows Phone 7 애플리케이션 개발 Dummies 치트 시트 - 인형

Windows Phone 7 애플리케이션 개발 Dummies 치트 시트 - 인형

Windows Phone 7에서 실행할 응용 프로그램에 대한 새로운 아이디어는 Microsoft 웹 사이트에서 무료 Windows Phone Developer Tools를 다운로드하여 시작하십시오. 이 프로세스는 다운로드를 시작하기 전에 PC에서 가지고있는 것을 살펴 봅니다. 이미 더 나은 버전이있는 경우를 대비하여 ...

Android 용으로 개발해야하는 이유는 무엇입니까? - 인형

Android 용으로 개발해야하는 이유는 무엇입니까? - 인형

진짜 질문은 "안드로이드를 개발하지 않겠습니까? "전 세계 수백만 명의 사용자가 앱을 사용할 수있게하려는 경우 또는 작성 및 테스트를 마친 후 앱을 게시하려는 경우 또는 개방형 플랫폼에서 개발하려는 경우 답변을 얻을 수 있습니다. 그러나 당신이 ...

편집자의 선택

TestDriveController를 가지고 나면 iOS 앱 - 더미에 액션을 추가하는 방법

TestDriveController를 가지고 나면 iOS 앱 - 더미에 액션을 추가하는 방법

IOS 앱에 표시되는 인터페이스는 Assistant Editor에서 자동으로 표시하거나 점프 바를 사용하여 탐색 할 수 있으므로 작업을 작성하는 실제 비즈니스는 매우 간단합니다. Interface Builder 편집기에서 관심있는 요소 (Test ...

편집자의 선택

Word 2010에서 테마를 수정하거나 만드는 방법 - dummy

Word 2010에서 테마를 수정하거나 만드는 방법 - dummy

Word 2010에서는 허용되지 않습니다. 자신 만의 테마를 처음부터 만들 수 있지만 기존 테마를 수정하여 나만의 맞춤 테마를 만들 수 있습니다. 기존 테마 색 및 글꼴을 수정하여 시작하십시오. 사용자 정의 색 테마를 작성하려면 다음을 수행하십시오. 색상 → 새 테마 색 작성을 선택하십시오. 새 테마 색 만들기 대화 상자를 사용하여 선택하고 ...

Word 2016에서 표 셀을 병합하는 방법 -

Word 2016에서 표 셀을 병합하는 방법 -

두 개의 셀을 결합하는 완전히 합리적인 방법 Word 2016 표를 하나 또는 두 개의 셀로 나눠서 표 그리기 도구를 사용하는 것입니다. 천국은 다른 방식으로 세포를 합병하거나 쪼개기로 결심한다면 자비를 베푸십시오. 두 개의 셀을 결합하려면 줄을 지우십시오.

Word 2007에서 기존 템플릿을 수정하는 방법 - 인형

Word 2007에서 기존 템플릿을 수정하는 방법 - 인형

두 가지 방법 : 템플릿에서 직접 변경하거나 템플릿을 기반으로하는 문서를 변경하여 간접적으로 수정할 수 있습니다. 두 번째 방법은 스타일 변경과 같은 템플릿 변경 만 적용합니다. 기존 Word 수정 ...