QMutableLinkedListIterator Class
template <typename T> class QMutableLinkedListIteratorQMutableLinkedListIterator 클래스는 QLinkedList 에 대한 Java 스타일 논-컨스트 이터레이터를 제공합니다. 더 보기...
Header: | #include <QMutableLinkedListIterator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake: | QT += core5compat |
공용 함수
QMutableLinkedListIterator(QLinkedList<T> &list) | |
bool | findNext(const T &value) |
bool | findPrevious(const T &value) |
bool | hasNext() const |
bool | hasPrevious() const |
void | insert(const T &value) |
T & | next() |
T & | peekNext() const |
T & | peekPrevious() const |
T & | previous() |
void | remove() |
void | setValue(const T &value) const |
void | toBack() |
void | toFront() |
const T & | value() const |
T & | value() |
QMutableLinkedListIterator<T> & | operator=(QLinkedList<T> &list) |
상세 설명
QLinkedList 에는 Java 스타일 이 터레이터와 STL 스타일 이터레이터가 모두 있습니다. Java 스타일 이터레이터는 STL 스타일 이터레이터보다 더 높은 수준이고 사용하기 쉽지만, 반면에 효율성은 약간 떨어집니다.
QMutableLinkedListIterator<T>를 사용하면 QLinkedList<T>를 반복하고 목록을 수정할 수 있습니다. 목록을 수정하고 싶지 않다면 (또는 상수 QLinkedList)를 사용하고 싶다면 약간 더 빠른 QLinkedListIterator<T>를 대신 사용하세요.
QMutableLinkedListIterator 생성자는 QLinkedList 를 인수로 받습니다. 생성 후 이터레이터는 목록의 맨 처음(첫 번째 항목 앞)에 위치합니다. 모든 요소를 순차적으로 반복하는 방법은 다음과 같습니다:
QLinkedList<float> list;...QMutableLinkedListIterator<float> i(list);while (i.hasNext()) qDebug() << i.next();
next() 함수는 목록의 다음 항목을 반환하고 반복자를 진행시킵니다. STL 스타일 이터레이터와 달리 Java 스타일 이터레이터는 항목을 직접 가리키지 않고 항목 사이를 가리킵니다. next ()를 처음 호출하면 이터레이터가 첫 번째와 두 번째 항목 사이의 위치로 전진하여 첫 번째 항목을 반환하고, next()를 두 번째로 호출하면 이터레이터가 두 번째와 세 번째 항목 사이의 위치로 전진하여 두 번째 항목을 반환하는 식으로 반복자를 전진시킵니다.
요소를 역순으로 반복하는 방법은 다음과 같습니다:
QMutableLinkedListIterator<float> i(list); i.toBack();while (i.hasPrevious()) qDebug() << i.previous();
특정 값의 모든 항목을 찾으려면 findNext() 또는 findPrevious()을 반복해서 사용합니다.
목록을 반복하면서 항목을 제거하려면 remove()를 사용합니다. 항목의 값을 수정하려면 setValue()를 사용합니다. 목록에 새 항목을 삽입하려면 insert()를 사용합니다.
예제:
QMutableLinkedListIterator<int> i(list); while (i.hasNext()) { int val = i.next(); if (val < 0) { i.setValue(-val); } else if (val == 0) { i.remove(); } }
이 예는 목록을 순회하면서 음수를 절대값으로 바꾸고 0을 제거합니다.
주어진 목록에서는 한 번에 하나의 변경 가능한 반복자만 활성화할 수 있습니다. 또한 반복기가 활성화되어 있는 동안에는 반복기를 통하지 않고 목록을 직접 변경하면 반복기가 무효화되고 정의되지 않은 동작이 발생할 수 있으므로 목록을 직접 변경해서는 안 됩니다.
QLinkedListIterator 및 QLinkedList::iterator 을참조하세요 .
멤버 함수 문서
QMutableLinkedListIterator::QMutableLinkedListIterator(QLinkedList<T> &list)
list 을 트래버스하기 위한 이터레이터를 구축합니다. 이터레이터는 목록의 앞쪽(첫 번째 항목 앞)에 위치하도록 설정됩니다.
operator=()도 참조하세요 .
QMutableLinkedListIterator<T> &QMutableLinkedListIterator::operator=(QLinkedList<T> &list)
반복기가 list 에서 작동하도록 합니다. 반복기는 목록의 앞쪽(첫 번째 항목 앞)에 위치하도록 설정됩니다.
void QMutableLinkedListIterator::toFront()
반복기를 컨테이너의 앞쪽(첫 번째 항목 앞)으로 이동합니다.
void QMutableLinkedListIterator::toBack()
반복기를 컨테이너의 뒤쪽(마지막 항목 뒤)으로 이동합니다.
toFront() 및 previous()도 참조하세요 .
bool QMutableLinkedListIterator::hasNext() const
반복자 앞에 항목이 하나 이상 있는 경우, 즉 반복자가 컨테이너 뒤에 있지 않으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
hasPrevious() 및 next()도 참조하세요 .
bool QMutableLinkedListIterator::hasPrevious() const
반복자 뒤에 항목이 하나 이상 있는 경우, 즉 반복자가 컨테이너의 앞에 있지 않으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
hasNext() 및 previous()도 참조하세요 .
bool QMutableLinkedListIterator::findNext(const T &value)
현재 반복자 위치에서 앞으로 value 를 검색합니다. value 이 발견되면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
호출 후 value 이 발견되면 반복기는 일치하는 항목 바로 뒤에 위치하며, 그렇지 않으면 반복기는 컨테이너 뒤쪽에 위치합니다.
findPrevious()도 참조하세요 .
bool QMutableLinkedListIterator::findPrevious(const T &value)
현재 반복자 위치에서 거꾸로 시작하여 value 를 검색합니다. value 이 발견되면 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
호출 후 value 가 발견되면 일치하는 항목 바로 앞에 반복기가 배치되고, 그렇지 않으면 반복기가 컨테이너의 앞쪽에 배치됩니다.
findNext()도 참조하세요 .
void QMutableLinkedListIterator::insert(const T &value)
현재 이터레이터 위치에 value 을 삽입합니다. 호출 후 반복기는 삽입된 항목 바로 뒤에 위치합니다.
remove() 및 setValue()도 참조하세요 .
T &QMutableLinkedListIterator::next()
다음 항목에 대한 참조를 반환하고 반복기를 한 위치 전진시킵니다.
컨테이너 뒤쪽에 있는 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.
hasNext(), peekNext() 및 previous()도 참조하세요 .
T &QMutableLinkedListIterator::peekNext() const
이터레이터를 이동하지 않고 다음 항목에 대한 참조를 반환합니다.
컨테이너 뒤쪽에 있는 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.
hasNext(), next() 및 peekPrevious()도 참조하세요 .
T &QMutableLinkedListIterator::peekPrevious() const
이터레이터를 이동하지 않고 이전 항목에 대한 참조를 반환합니다.
컨테이너 앞쪽에 있는 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.
hasPrevious(), previous() 및 peekNext()도 참조하세요 .
T &QMutableLinkedListIterator::previous()
이전 항목에 대한 참조를 반환하고 반복기를 한 위치 뒤로 이동합니다.
컨테이너 앞쪽에 있는 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.
hasPrevious(), peekPrevious() 및 next()도 참조하세요 .
void QMutableLinkedListIterator::remove()
트래버스 함수(next(), previous(), findNext(), findPrevious()) 중 하나를 사용하여 마지막으로 건너뛴 항목을 제거합니다.
예시:
QMutableLinkedListIterator<int> i(list); while (i.hasNext()) { int val = i.next(); if (val < -32768 || val > 32767) i.remove(); }
insert() 및 setValue()도 참조하세요 .
void QMutableLinkedListIterator::setValue(const T &value) const
트래버스 함수 중 하나를 사용하여 마지막으로 건너뛴 항목의 값을 value 로 바꿉니다.
트래버스 함수는 next(), previous(), findNext() 및 findPrevious()입니다.
예시:
QMutableLinkedListIterator<double> i(list); while (i.hasNext()) { double val = i.next(); i.setValue(std::sqrt(val)); }
value(), remove() 및 insert()도 참조하세요 .
const T &QMutableLinkedListIterator::value() const
트래버스 함수(next(), previous(), findNext(), findPrevious()) 중 하나를 사용하여 마지막으로 건너뛴 항목의 값을 반환합니다.
next() 또는 findNext() 호출 후 value()는 peekPrevious()와 동일합니다. previous () 또는 findPrevious() 호출 후 value()는 peekNext()와 동일합니다.
setValue()도 참조하세요 .
T &QMutableLinkedListIterator::value()
이 함수는 오버로드된 함수입니다.
트래버스 함수 중 하나를 사용하여 점프한 마지막 항목의 값에 대한 생성되지 않은 참조를 반환합니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.