qt qlist 예제

QSet은 예제에서 색상을 저장하는 데 사용됩니다. 한 가지 색상 값을 더 많이 지정하는 것은 의미가 없습니다. 컨테이너에는 순차및 연관이라는 두 가지 종류가 있습니다. 순차 컨테이너는 항목을 차례로 저장하는 반면 연관 컨테이너는 키-값 쌍을 저장합니다. QList, QVector, QLinkedList는 순차 컨테이너에 속합니다. QMap 및 Q해시는 연관 컨테이너의 예입니다. QList의 값 형식은 할당 가능한 데이터 형식이어야 합니다. 여기에는 일반적으로 사용되는 대부분의 데이터 형식이 다루지만 컴파일러에서는 QWidget을 값으로 저장할 수 없습니다. 대신 QWidget *을 저장합니다.

몇 가지 함수에는 추가 요구 사항이 있습니다. 예를 들어 indexOf() 및 lastIndexOf()는 값 형식이 연산자==()를 지원할 것으로 예상합니다. 이러한 요구 사항은 기능별로 문서화되어 있습니다. 목록에서 특정 값의 모든 발생을 찾으려면 indexOf() 또는 lastIndexOf()를 사용합니다. 전자는 지정된 인덱스 위치에서 시작하여 앞으로 검색하고 후자는 뒤로 검색합니다. 둘 다 일치하는 항목의 인덱스를 찾으면 반환합니다. 그렇지 않으면 -1을 반환합니다. 예를 들어 정수를 저장하는 QList와 QDate 값을 저장하는 QList의 예는 다음과 같습니다. . 목록에서 모든 값 발생을 제거하고 제거된 항목 수를 반환합니다. . 목록에서 이터레이터 pos와 연관된 항목을 제거하고 목록의 다음 항목(end()일 수 있음)에 대한 이터레이터를 반환합니다.

QMapIterator는 QMap에 대한 자바 스타일의 이터레이터입니다. 맵의 요소를 반복하는 데 사용할 수 있습니다. . 이 함수는 값 형식에 operator==()의 구현이 필요합니다. 이 기능은 STL 호환성을 위해 제공됩니다. 이는 에 해당합니다Empty() 및 목록이 비어 있는 경우 true를 반환합니다. 인덱스 i가 경계를 벗어난 경우 함수는 기본 생성 값을 반환합니다. 인덱스가 경계 내에 있을 것이라고 확신하는 경우 at()를 대신 사용할 수 있습니다. 참고: QLinkedList로 의이터 및 힙 할당 QList에 대한 참조는 참조된 항목이 컨테이너에 남아 있는 한 유효합니다. QVector 및 비힙 할당 QLists에 대한 이터레이터 및 참조에는 해당되지 않습니다.

. . . QList는 요소 목록을 만들기 위한 컨테이너입니다. QVector와 유사합니다. 값 목록을 저장하고 빠른 인덱스 기반 액세스뿐만 아니라 빠른 삽입 및 제거를 제공합니다. 그것은 Qt에서 가장 일반적으로 사용되는 컨테이너 중 하나입니다. . .

. at()는 깊은 복사본이 발생하지 않기 때문에 연산자[]()보다 빠를 수 있습니다. . 다른 컨테이너 클래스와 마찬가지로 QList는 자바 스타일 이터레이터(QListIterator 및 QMutableListIterator) 및 STL 스타일 이터레이터(QList::const_iterator 및 QList:Iterator)를 제공합니다. 실제로 QList에 인덱스를 사용할 수 있으므로 거의 사용되지 않습니다. QList는 직접 인덱스 기반 액세스가 이터레이터를 사용하는 것만큼 빠르다는 방식으로 구현됩니다. QList 클래스는 목록을 제공하는 템플릿 클래스입니다. const T *에 대한 유형 def. STL 호환성을 위해 제공됩니다. 배열 목록으로 구현되지만 매우 빠른 준비 및 추가 를 제공합니다.

대부분의 응용 프로그램에서 QList를 사용하는 가장 좋은 유형입니다. . . for 루프에서 컨테이너를 통과하여 해당 요소를 인쇄합니다. at() 메서드는 지정된 인덱스에서 항목을 반환합니다. unite(메서드는 두 세트의 결합을 수행합니다. cols1 집합에는 아직 존재하지 않는 cols2 집합에서 삽입된 모든 항목이 있습니다. 우리의 경우, 모든 색상을 제외한 파란색.