이 페이지에서

QFutureIterator Class

template <typename T> class QFutureIterator

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

헤더: #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)

상세 설명

QFutureIterator<T>는 템플릿 클래스로, 여기서 T 는 반복 처리되는 ` QFuture `의 결과 유형을 지정합니다.

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

이터레이터를 사용하는 대신 인덱스 위치를 사용할 수도 있습니다. 일부 QFuture 멤버 함수는 첫 번째 매개변수로 인덱스를 받으므로, 이터레이터를 사용하지 않고도 결과에 접근할 수 있습니다.

QFutureIterator<T>를 사용하면 QFuture<T>를 순회할 수 있습니다. QFuture 에는 (다른 자바 스타일 이터레이터와 달리) 가변 이터레이터가 없다는 점에 유의하십시오.

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

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

next() 함수는 퓨처에서 다음 결과를 반환하고(필요한 경우 결과가 사용 가능해질 때까지 대기하며) 이터레이터를 다음 결과로 이동시킵니다. STL 스타일 이터레이터와 달리, Java 스타일 이터레이터는 결과를 직접 가리키기보다는 결과들 사이를 가리킵니다. next()를 처음 호출하면 이터레이터가 첫 번째 결과와 두 번째 결과 사이의 위치로 이동하고 첫 번째 결과를 반환합니다. next()를 두 번째로 호출하면 이터레이터가 두 번째 결과와 세 번째 결과 사이의 위치로 이동하고 두 번째 결과를 반환하며, 이와 같은 방식으로 진행됩니다.

A, B, C, D라는 네 개 항목 사이의 이터레이터 위치와 유효한 위치를 가리키는 화살표

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

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

특정 값이 나타나는 모든 위치를 찾으려면 루프 내에서 findNext() 또는 findPrevious()를 사용하십시오.

동일한 퓨처에 대해 여러 개의 이터레이터를 사용할 수 있습니다. QFutureIterator가 활성화된 상태에서 퓨처가 수정되더라도, QFutureIterator는 수정된 사본을 무시하고 원래의 퓨처를 계속 순회합니다.

QFuture::const_iterator 및 QFuture도 참조하십시오 .

멤버 함수 문서

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()도 참조하십시오 .

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