QLinkedList Class
template <typename T> class QLinkedListQLinkedList 클래스는 링크된 목록을 제공하는 템플릿 클래스입니다. 더 보기...
Header: | #include <QLinkedList> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake: | QT += core5compat |
- 상속된 멤버를 포함한 모든 멤버의 목록
- QLinkedList는 암시적으로 공유되는 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입됩니다.
공용 유형
class | const_iterator |
class | iterator |
ConstIterator | |
Iterator | |
const_pointer | |
const_reference | |
const_reverse_iterator | |
difference_type | |
pointer | |
reference | |
reverse_iterator | |
size_type | |
value_type |
공용 함수
QLinkedList() | |
QLinkedList(std::initializer_list<T> list) | |
QLinkedList(InputIterator first, InputIterator last) | |
QLinkedList(const QLinkedList<T> &other) | |
QLinkedList(QLinkedList<T> &&other) | |
~QLinkedList() | |
void | append(const T &value) |
T & | back() |
const T & | back() const |
QLinkedList<T>::iterator | begin() |
QLinkedList<T>::const_iterator | begin() const |
QLinkedList<T>::const_iterator | cbegin() const |
QLinkedList<T>::const_iterator | cend() const |
void | clear() |
QLinkedList<T>::const_iterator | constBegin() const |
QLinkedList<T>::const_iterator | constEnd() const |
bool | contains(const T &value) const |
int | count() const |
int | count(const T &value) const |
QLinkedList<T>::const_reverse_iterator | crbegin() const |
QLinkedList<T>::const_reverse_iterator | crend() const |
bool | empty() const |
QLinkedList<T>::iterator | end() |
QLinkedList<T>::const_iterator | end() const |
bool | endsWith(const T &value) const |
QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator pos) |
QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end) |
T & | first() |
const T & | first() const |
T & | front() |
const T & | front() const |
QLinkedList<T>::iterator | insert(QLinkedList<T>::iterator before, const T &value) |
bool | isEmpty() const |
T & | last() |
const T & | last() const |
void | pop_back() |
void | pop_front() |
void | prepend(const T &value) |
void | push_back(const T &value) |
void | push_front(const T &value) |
QLinkedList<T>::reverse_iterator | rbegin() |
QLinkedList<T>::const_reverse_iterator | rbegin() const |
int | removeAll(const T &value) |
void | removeFirst() |
void | removeLast() |
bool | removeOne(const T &value) |
QLinkedList<T>::reverse_iterator | rend() |
QLinkedList<T>::const_reverse_iterator | rend() const |
int | size() const |
bool | startsWith(const T &value) const |
void | swap(QLinkedList<T> &other) |
T | takeFirst() |
T | takeLast() |
std::list<T> | toStdList() const |
bool | operator!=(const QLinkedList<T> &other) const |
QLinkedList<T> | operator+(const QLinkedList<T> &other) const |
QLinkedList<T> & | operator+=(const QLinkedList<T> &other) |
QLinkedList<T> & | operator+=(const T &value) |
QLinkedList<T> & | operator<<(const QLinkedList<T> &other) |
QLinkedList<T> & | operator<<(const T &value) |
QLinkedList<T> & | operator=(const QLinkedList<T> &other) |
bool | operator==(const QLinkedList<T> &other) const |
정적 공용 멤버
QLinkedList<T> | fromStdList(const std::list<T> &list) |
관련 비회원
QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> | operator<<(QDataStream &out, const QLinkedList<T> &list) |
QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> | operator>>(QDataStream &in, QLinkedList<T> &list) |
상세 설명
QLinkedList<T>는 Qt의 일반 컨테이너 클래스 중 하나입니다. 값의 목록을 저장하고 이터레이터 기반 접근과 상수 시간 삽입 및 제거를 제공합니다.
QList<T>와 QLinkedList<T>는 비슷한 기능을 제공합니다. 다음은 개요입니다:
- 대부분의 경우 QList 클래스를 사용하는 것이 좋습니다. 인덱스 기반 API는 QLinkedList의 반복자 기반 API보다 더 편리합니다. 이 클래스의 항목은 인접한 메모리 위치를 차지합니다. 또한 실행 파일에서 더 적은 코드로 확장됩니다.
- 목록 중간에 일정한 시간 삽입이 보장되고 인덱스가 아닌 항목에 대한 이터레이터가 있는 실제 링크된 목록이 필요하다면 QLinkedList를 사용하세요.
다음은 정수를 저장하는 QLinkedList와 QTime 값을 저장하는 QLinkedList의 예입니다:
QLinkedList<int> integerList; QLinkedList<QTime> timeList;
QLinkedList는 항목 목록을 저장합니다. 기본 생성자는 빈 목록을 생성합니다. 목록에 항목을 삽입하려면 연산자<<()를 사용할 수 있습니다:
QLinkedList<QString> list; list << "one" << "two" << "three"; // list: ["one", "two", "three"]
연결된 목록의 첫 번째 또는 마지막 항목을 가져오려면 first() 또는 last()를 사용합니다. 목록의 양쪽 끝에서 항목을 제거하려면 removeFirst() 또는 removeLast()를 사용합니다. 목록에서 특정 값의 모든 항목을 제거하려면 removeAll()를 사용합니다.
일반적인 요구 사항은 목록의 첫 번째 또는 마지막 항목을 제거하고 해당 항목으로 무언가를 수행하는 것입니다. 이를 위해 QLinkedList는 takeFirst() 및 takeLast()를 제공합니다. 다음은 목록에서 항목을 한 번에 하나씩 제거하고 delete
을 호출하는 루프입니다:
QLinkedList<QWidget *> list; ... while (!list.isEmpty()) delete list.takeFirst();
QLinkedList의 값 유형은 할당 가능한 데이터 유형이어야 합니다. 이는 일반적으로 사용되는 대부분의 데이터 유형을 포함하지만, 예를 들어 컴파일러는 QWidget을 값으로 저장하는 대신 QWidget *을 저장하는 것을 허용하지 않습니다. 예를 들어 contains() 및 removeAll()은 값 유형이 operator==()
을 지원할 것으로 기대합니다. 이러한 요구 사항은 함수별로 문서화되어 있습니다.
목록 중간에 항목을 삽입, 수정 또는 제거하려면 이터레이터를 사용해야 합니다. QLinkedList는 Java 스타일 이터레이터 (QLinkedListIterator 및 QMutableLinkedListIterator)와 STL 스타일 이터레이터 (QLinkedList::const_iterator 및 QLinkedList::iterator)를 모두 제공합니다. 자세한 내용은 이러한 클래스에 대한 설명서를 참조하세요.
QLinkedListIterator, QMutableLinkedListIterator, QList도 참조 하세요.
멤버 유형 문서
QLinkedList::ConstIterator
QLinkedList::const_iterator 의 Qt 스타일 동의어.
QLinkedList::Iterator
QLinkedList::iterator 의 Qt 스타일 동의어.
QLinkedList::const_pointer
상수 T *에 대한 Typedef. STL 호환성을 위해 제공됩니다.
QLinkedList::const_reference
const T &용 Typedef. STL 호환성을 위해 제공됩니다.
QLinkedList::const_reverse_iterator
QLinkedList::const_reverse_iterator typedef는 QLinkedList 에 대한 STL 스타일의 const 역이터레이터를 제공합니다.
std::reverse_iterator<QLinkedList::const_iterator>
에 대한 typedef입니다.
경고: 암시적으로 공유되는 컨테이너의 이터레이터는 STL 이터레이터와 똑같이 작동하지 않습니다. 해당 컨테이너에서 이터레이터가 활성화되어 있는 동안에는 컨테이너를 복사하지 않아야 합니다. 자세한 내용은 암시적 공유 이터레이터 문제를 참조하세요.
QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::reverse_iterator, 및 QLinkedList::const_iterator도 참조하세요 .
QLinkedList::difference_type
ptrdiff_t의 경우 Typedef. STL 호환성을 위해 제공됩니다.
QLinkedList::pointer
T *의 경우 Typedef. STL 호환성을 위해 제공됩니다.
QLinkedList::reference
T &용 Typedef. STL 호환성을 위해 제공됩니다.
QLinkedList::reverse_iterator
QLinkedList::reverse_iterator typedef는 QLinkedList 에 대한 STL 스타일의 논-컨스트 리버스 이터레이터를 제공합니다.
std::reverse_iterator<QLinkedList::iterator>
에 대한 typedef입니다.
경고: 암시적으로 공유된 컨테이너의 이터레이터는 STL 이터레이터와 똑같이 작동하지 않습니다. 해당 컨테이너에서 이터레이터가 활성화되어 있는 동안에는 컨테이너를 복사하지 않아야 합니다. 자세한 내용은 암시적 공유 이터레이터 문제를 참조하세요.
QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::const_reverse_iterator, 및 QLinkedList::iterator도 참조하세요 .
QLinkedList::size_type
int. STL 호환성을 위해 제공됩니다.
QLinkedList::value_type
STL 호환성을 위해 제공되는 T용 Typedef입니다.
멤버 함수 문서
[noexcept]
QLinkedList::QLinkedList()
빈 목록을 작성합니다.
QLinkedList::QLinkedList(std::initializer_list<T> list)
list 에 지정된 std::initializer_list 로부터 리스트를 생성합니다.
이 생성자는 컴파일러가 C++11 이니셜라이저 리스트를 지원하는 경우에만 활성화됩니다.
template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true> QLinkedList::QLinkedList(InputIterator first, InputIterator last)
반복자 범위의 콘텐츠로 목록을 구성합니다 [first, last).
InputIterator
의 값 유형은 T
로 변환 가능해야 합니다.
QLinkedList::QLinkedList(const QLinkedList<T> &other)
other 의 복사본을 생성합니다.
이 작업은 암시적으로 공유되기 때문에 상수 시간에 발생합니다. 따라서 함수에서 QLinkedList를 매우 빠르게 반환할 수 있습니다. 공유 인스턴스가 수정되면 복사(쓰기 시 복사)되며, 이 작업에는 선형 시간이 걸립니다.
operator=()도 참조하세요 .
[noexcept]
QLinkedList::QLinkedList(QLinkedList<T> &&other)
Move - QLinkedList 인스턴스를 생성하여 other 이 가리키고 있던 것과 동일한 객체를 가리키도록 합니다.
QLinkedList::~QLinkedList()
목록을 삭제합니다. 목록의 값에 대한 참조와 이 목록에 대한 모든 이터레이터가 무효화됩니다.
void QLinkedList::append(const T &value)
목록 끝에 value 을 삽입합니다.
예시:
QLinkedList<QString> list; list.append("one"); list.append("two"); list.append("three"); // list: ["one", "two", "three"]
이는 list.insert(end(), value)와 동일합니다.
operator<<(), prepend() 및 insert()도 참조하세요 .
T &QLinkedList::back()
이 기능은 STL 호환성을 위해 제공됩니다. last ()와 동일합니다.
const T &QLinkedList::back() const
과부하가 걸린 기능입니다.
QLinkedList<T>::iterator QLinkedList::begin()
목록의 첫 번째 항목을 가리키는 STL 스타일 이터레이터를 반환합니다.
constBegin() 및 end()도 참조하세요 .
[noexcept]
QLinkedList<T>::const_iterator QLinkedList::begin() const
과부하가 걸린 기능입니다.
[noexcept]
QLinkedList<T>::const_iterator QLinkedList::cbegin() const
목록의 첫 번째 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.
[noexcept]
QLinkedList<T>::const_iterator QLinkedList::cend() const
목록의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.
void QLinkedList::clear()
목록의 모든 항목을 제거합니다.
removeAll()도 참조하세요 .
[noexcept]
QLinkedList<T>::const_iterator QLinkedList::constBegin() const
목록의 첫 번째 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.
[noexcept]
QLinkedList<T>::const_iterator QLinkedList::constEnd() const
목록의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.
constBegin() 및 end()도 참조하세요 .
bool QLinkedList::contains(const T &value) const
목록에 value 이 포함되어 있으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
이 함수를 사용하려면 값 유형에 operator==()
의 구현이 있어야 합니다.
QLinkedListIterator::findNext() 및 QLinkedListIterator::findPrevious()도 참조하세요 .
int QLinkedList::count() const
size()와 동일합니다.
int QLinkedList::count(const T &value) const
목록에서 value 의 발생 횟수를 반환합니다.
이 함수를 사용하려면 값 유형이 operator==()
로 구현되어야 합니다.
contains()도 참조하세요 .
[noexcept]
QLinkedList<T>::const_reverse_iterator QLinkedList::crbegin() const
목록의 첫 번째 항목을 역순으로 가리키는 상수 STL 스타일 리버스 이터레이터를 반환합니다.
begin(), rbegin(), rend()도 참조하세요 .
[noexcept]
QLinkedList<T>::const_reverse_iterator QLinkedList::crend() const
목록의 마지막 항목을 역순으로 지나가는 것을 가리키는 상수 STL 스타일 리버스 이터레이터를 반환합니다.
end(), rend(), rbegin()도 참조하세요 .
bool QLinkedList::empty() const
이 함수는 STL 호환성을 위해 제공됩니다. isEmpty ()와 동일하며 목록이 비어 있으면 true
을 반환합니다.
QLinkedList<T>::iterator QLinkedList::end()
목록의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 STL 스타일 이터레이터를 반환합니다.
[noexcept]
QLinkedList<T>::const_iterator QLinkedList::end() const
과부하가 걸린 기능입니다.
bool QLinkedList::endsWith(const T &value) const
목록이 비어 있지 않고 마지막 항목이 value 과 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator pos)
반복자 pos 가 가리키는 항목을 목록에서 제거하고 목록의 다음 항목( end() 일 수 있음)으로 반복자를 반환합니다.
insert()도 참조하세요 .
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end)
과부하가 걸린 함수입니다.
begin 에서 end 까지의 모든 항목을 제거합니다.
T &QLinkedList::first()
목록의 첫 번째 항목에 대한 참조를 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다.
const T &QLinkedList::first() const
과부하가 걸린 기능입니다.
[static]
QLinkedList<T> QLinkedList::fromStdList(const std::list<T> &list)
list 에 포함된 데이터와 함께 QLinkedList 객체를 반환합니다. QLinkedList 의 요소 순서는 list 과 동일합니다.
예제:
std::list<double> stdlist; list.push_back(1.2); list.push_back(0.5); list.push_back(3.14); QLinkedList<double> list = QLinkedList<double>::fromStdList(stdlist);
toStdList()도 참조하세요 .
T &QLinkedList::front()
이 기능은 STL 호환성을 위해 제공됩니다. first ()와 동일합니다.
const T &QLinkedList::front() const
과부하가 걸린 기능입니다.
QLinkedList<T>::iterator QLinkedList::insert(QLinkedList<T>::iterator before, const T &value)
이터레이터 before 가 가리키는 항목 앞에 value 를 삽입합니다. 삽입된 항목을 가리키는 이터레이터를 반환합니다.
erase()도 참조하세요 .
bool QLinkedList::isEmpty() const
목록에 항목이 없으면 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
size()도 참조하세요 .
T &QLinkedList::last()
목록의 마지막 항목에 대한 참조를 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다.
const T &QLinkedList::last() const
과부하가 걸린 기능입니다.
void QLinkedList::pop_back()
이 기능은 STL 호환성을 위해 제공됩니다. removeLast ()와 동일합니다.
void QLinkedList::pop_front()
이 기능은 STL 호환성을 위해 제공됩니다. removeFirst ()와 동일합니다.
void QLinkedList::prepend(const T &value)
목록 시작 부분에 value 을 삽입합니다.
예시:
QLinkedList<QString> list; list.prepend("one"); list.prepend("two"); list.prepend("three"); // list: ["three", "two", "one"]
이는 list.insert(begin(), value)와 동일합니다.
void QLinkedList::push_back(const T &value)
이 함수는 STL 호환성을 위해 제공됩니다. append(value)와 동일합니다.
void QLinkedList::push_front(const T &value)
이 함수는 STL 호환성을 위해 제공됩니다. prepend(value)와 동일합니다.
QLinkedList<T>::reverse_iterator QLinkedList::rbegin()
목록의 첫 번째 항목을 역순으로 가리키는 STL 스타일 역이터레이터를 반환합니다.
begin(), crbegin() 및 rend()도 참조하세요 .
[noexcept]
QLinkedList<T>::const_reverse_iterator QLinkedList::rbegin() const
과부하가 걸린 기능입니다.
int QLinkedList::removeAll(const T &value)
목록에서 value 의 모든 항목을 제거합니다.
예제:
QList<QString> list; list << "sun" << "cloud" << "sun" << "rain"; list.removeAll("sun"); // list: ["cloud", "rain"]
이 함수를 사용하려면 값 유형이 operator==()
로 구현되어야 합니다.
insert()도 참조하세요 .
void QLinkedList::removeFirst()
목록의 첫 번째 항목을 제거합니다.
이는 지우기(begin())와 동일합니다.
removeLast() 및 erase()도 참조하세요 .
void QLinkedList::removeLast()
목록의 마지막 항목을 제거합니다.
removeFirst() 및 erase()도 참조하세요 .
bool QLinkedList::removeOne(const T &value)
목록에서 value 의 첫 번째 항목을 제거합니다. 성공하면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
예제:
QList<QString> list; list << "sun" << "cloud" << "sun" << "rain"; list.removeOne("sun"); // list: ["cloud", "sun", "rain"]
이 함수를 사용하려면 값 유형에 operator==()
의 구현이 있어야 합니다.
insert()도 참조하세요 .
QLinkedList<T>::reverse_iterator QLinkedList::rend()
목록의 마지막 항목을 역순으로 지나가는 항목을 가리키는 STL 스타일 역이터레이터를 반환합니다.
end(), crend() 및 rbegin()도 참조하세요 .
[noexcept]
QLinkedList<T>::const_reverse_iterator QLinkedList::rend() const
과부하가 걸린 기능입니다.
int QLinkedList::size() const
목록에 있는 항목의 수를 반환합니다.
bool QLinkedList::startsWith(const T &value) const
목록이 비어 있지 않고 첫 번째 항목이 value 과 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
[noexcept]
void QLinkedList::swap(QLinkedList<T> &other)
other 목록을 이 목록으로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
T QLinkedList::takeFirst()
목록의 첫 번째 항목을 제거하고 반환합니다.
반환 값을 사용하지 않는 경우에는 removeFirst()를 사용하는 것이 더 효율적입니다.
takeLast() 및 removeFirst()도 참조하세요 .
T QLinkedList::takeLast()
목록의 마지막 항목을 제거하고 반환합니다.
반환 값을 사용하지 않는 경우 removeLast()를 사용하는 것이 더 효율적입니다.
takeFirst() 및 removeLast()도 참조하세요 .
std::list<T> QLinkedList::toStdList() const
이 QLinkedList 에 포함된 데이터가 있는 std::list 객체를 반환합니다. 예제:
QLinkedList<double> list; list << 1.2 << 0.5 << 3.14; std::list<double> stdlist = list.toStdList();
fromStdList()도 참조하세요 .
bool QLinkedList::operator!=(const QLinkedList<T> &other) const
other 이 이 목록과 같지 않으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
두 목록이 같은 순서로 같은 값을 포함하면 동일한 것으로 간주됩니다.
이 함수를 구현하려면 operator==()
를 구현할 값 유형이 필요합니다.
operator==()도 참조하세요 .
QLinkedList<T> QLinkedList::operator+(const QLinkedList<T> &other) const
이 목록의 모든 항목이 포함된 목록과 other 목록의 모든 항목이 포함된 목록을 반환합니다.
operator+=()도 참조하세요 .
QLinkedList<T> &QLinkedList::operator+=(const QLinkedList<T> &other)
other 목록의 항목을 이 목록에 추가하고 이 목록에 대한 참조를 반환합니다.
operator+() 및 append()도 참조하세요 .
QLinkedList<T> &QLinkedList::operator+=(const T &value)
이 함수는 과부하된 함수입니다.
value 을 목록에 추가합니다.
QLinkedList<T> &QLinkedList::operator<<(const QLinkedList<T> &other)
other 목록의 항목을 이 목록에 추가하고 이 목록에 대한 참조를 반환합니다.
operator+=() 및 append()도 참조하세요 .
QLinkedList<T> &QLinkedList::operator<<(const T &value)
이 함수는 과부하된 함수입니다.
value 을 목록에 추가합니다.
QLinkedList<T> &QLinkedList::operator=(const QLinkedList<T> &other)
이 목록에 other 을 할당하고 이 목록에 대한 참조를 반환합니다.
bool QLinkedList::operator==(const QLinkedList<T> &other) const
other 이 이 목록과 같으면 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
두 목록이 같은 순서로 같은 값을 포함하면 동일한 것으로 간주합니다.
이 함수를 구현하려면 operator==()
를 구현할 값 유형이 필요합니다.
operator!=()도 참조하세요 .
관련 비회원
template <typename T> QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> operator<<(QDataStream &out, const QLinkedList<T> &list)
링크된 목록 list 을 작성하여 out 을 스트리밍합니다.
이 함수는 operator<<()
을 구현하기 위한 값 유형이 필요합니다.
QDataStream 연산자의 형식을참조하십시오 .
template <typename T> QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> operator>>(QDataStream &in, QLinkedList<T> &list)
스트림 in 에서 list 로 연결된 목록을 읽습니다.
이 함수는 operator>>()
을 구현하기 위한 값 유형이 필요합니다.
QDataStream 연산자의 형식을참조하십시오 .
© 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.