QFutureIterator Class

template <typename T> class QFutureIterator

QFutureIterator 클래스는 QFuture 에 대한 Java 스타일 생성 이터레이터를 제공합니다. 더 보기...

Header: #include <QFutureIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

참고: 이 클래스의 모든 함수는 재진입합니다.

공용 함수

QFutureIterator(const QFuture<T> &future)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
const T &next()
const T &peekNext() const
const T &peekPrevious() const
const T &previous()
void toBack()
void toFront()
QFutureIterator<T> &operator=(const QFuture<T> &future)

상세 설명

QFuture 에는 Java 스타일 이 터레이터와 STL 스타일 이터레이터가 모두 있습니다. Java 스타일 이터레이터는 STL 스타일 이터레이터보다 더 높은 수준이고 사용하기 쉽지만, 반면에 효율성은 약간 떨어집니다.

반복자를 사용하는 대신 인덱스 위치를 사용하는 방법도 있습니다. 일부 QFuture 멤버 함수는 인덱스를 첫 번째 매개변수로 사용하므로 반복자를 사용하지 않고도 결과에 액세스할 수 있습니다.

QFutureIterator<T>를 사용하면 QFuture<T>를 반복할 수 있습니다. QFuture 에는 다른 Java 스타일 이터레이터와 달리 변경 가능한 이터레이터가 없다는 점에 유의하세요.

QFutureIterator 생성자는 QFuture 을 인수로 받습니다. 생성 후 이터레이터는 결과 목록의 맨 처음(즉, 첫 번째 결과 이전)에 위치합니다. 모든 결과를 순차적으로 반복하는 방법은 다음과 같습니다:

QFuture<QString> future;
...
QFutureIterator<QString> i(future);
while (i.hasNext())
    QString s = i.next();

next() 함수는 미래의 다음 결과(필요한 경우 사용할 수 있게 될 때까지 기다림)를 반환하고 반복기를 진행시킵니다. STL 스타일 이터레이터와 달리 Java 스타일 이터레이터는 결과를 직접 가리키지 않고 결과 사이를 가리킵니다. next ()를 처음 호출하면 반복기가 첫 번째 결과와 두 번째 결과 사이의 위치로 전진하여 첫 번째 결과를 반환하고, next()를 두 번째로 호출하면 반복기가 두 번째 결과와 세 번째 결과 사이의 위치로 전진하여 두 번째 결과를 반환하는 식으로 반복기가 전진합니다.

요소를 역순으로 반복하는 방법은 다음과 같습니다:

QFutureIterator<QString> i(future);
i.toBack();
while (i.hasPrevious())
    QString s = i.previous();

특정 값의 모든 항목을 찾으려면 findNext() 또는 findPrevious()를 루프에 사용합니다.

동일한 미래에 대해 여러 개의 반복기를 사용할 수 있습니다. QFutureIterator가 활성화되어 있는 동안 미래가 수정되면, QFutureIterator는 수정된 복사본을 무시하고 원래의 미래를 계속 반복합니다.

QFuture::const_iteratorQFuture참조하십시오 .

멤버 함수 문서

QFutureIterator::QFutureIterator(const QFuture<T> &future)

future 을 트래버스하기 위한 이터레이터를 구축합니다. 이터레이터는 결과 목록의 앞쪽(첫 번째 결과 앞)에 위치하도록 설정됩니다.

operator=()도 참조하세요 .

bool QFutureIterator::findNext(const T &value)

현재 반복자 위치에서 앞으로 value 를 검색합니다. value 이 발견되면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

호출 후 value 이 발견되면 반복기는 일치하는 결과 바로 뒤에 위치하며, 그렇지 않으면 반복기는 결과 목록의 뒤쪽에 위치합니다.

findPrevious()도 참조하세요 .

bool QFutureIterator::findPrevious(const T &value)

현재 반복자 위치에서 거꾸로 시작하여 value 를 검색합니다. value 이 발견되면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

호출 후 value 이 발견되면 반복기는 일치하는 결과 바로 앞에 배치되고, 그렇지 않으면 반복기는 결과 목록의 앞쪽에 배치됩니다.

findNext()도 참조하세요 .

bool QFutureIterator::hasNext() const

반복자 앞에 결과가 하나 이상 있는 경우(예: 반복자가 결과 목록의 맨 뒤에 있지 않은 경우) true 를 반환하고, 그렇지 않으면 false를 반환합니다.

hasPrevious() 및 next()도 참조하세요 .

bool QFutureIterator::hasPrevious() const

반복자 앞에 결과가 하나 이상 있는 경우(예: 반복자가 결과 목록의 맨 앞에 있지 않은 경우) true 를 반환하고, 그렇지 않으면 false를 반환합니다.

hasNext() 및 previous()도 참조하세요 .

const T &QFutureIterator::next()

다음 결과를 반환하고 반복기를 한 위치 전진시킵니다.

결과 목록 뒤쪽에 있는 반복자에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

hasNext(), peekNext() 및 previous()도 참조하세요 .

const T &QFutureIterator::peekNext() const

반복기를 이동하지 않고 다음 결과를 반환합니다.

결과 목록 뒤쪽에 있는 반복자에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

hasNext(), next() 및 peekPrevious()도 참조하세요 .

const T &QFutureIterator::peekPrevious() const

반복자를 이동하지 않고 이전 결과를 반환합니다.

결과 목록의 맨 앞에 있는 반복자에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

hasPrevious(), previous() 및 peekNext()도 참조하세요 .

const T &QFutureIterator::previous()

이전 결과를 반환하고 반복자를 한 위치 뒤로 이동합니다.

결과 목록의 맨 앞에 있는 반복자에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

hasPrevious(), peekPrevious() 및 next()도 참조하세요 .

void QFutureIterator::toBack()

반복자를 결과 목록의 뒤쪽(마지막 결과 뒤)으로 이동합니다.

toFront() 및 previous()도 참조하세요 .

void QFutureIterator::toFront()

반복자를 결과 목록의 앞쪽(첫 번째 결과 앞)으로 이동합니다.

toBack() 및 next()도 참조하세요 .

QFutureIterator<T> &QFutureIterator::operator=(const QFuture<T> &future)

반복기가 future 에서 작동하도록 합니다. 반복기는 결과 목록의 앞쪽(첫 번째 결과 앞)에 위치하도록 설정됩니다.

toFront() 및 toBack()도 참조하세요 .

© 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.