QList Class
template <typename T> class QListQList 클래스는 동적 배열을 제공하는 템플릿 클래스입니다. 더 보기...
| 헤더: | #include <QList> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 상속된 항목: |
- 상속된 멤버를 포함한 모든 멤버 목록
- 사용 중단된 멤버
- QList는 컨테이너 클래스 및 암시적 공유 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
공개 유형
공개 함수
| QList() | |
| QList(qsizetype size) | |
| QList(std::initializer_list<T> args) | |
| QList(InputIterator first, InputIterator last) | |
| QList(qsizetype size, QList<T>::parameter_type value) | |
(since 6.8) | QList(qsizetype size, Qt::Initialization) |
| QList(const QList<T>&other) | |
| QList(QList<T>&&other) | |
| ~QList() | |
| void | append(QList<T>::parameter_type value) |
(since 6.0) void | append(QList<T>&&value) |
| void | append(QList<T>::rvalue_ref value) |
| void | append(const QList<T>&value) |
(since 6.6) QList<T> & | assign(std::initializer_list<T> l) |
(since 6.6) QList<T> & | assign(InputIterator first, InputIterator last) |
(since 6.6) QList<T> & | assign(qsizetype n, QList<T>::parameter_type t) |
| QList<T>::const_reference | at(qsizetype i) const |
| QList<T>::reference | back() |
| QList<T>::const_reference | back() const |
| QList<T>::iterator | begin() |
| QList<T>::const_iterator | begin() const |
| qsizetype | capacity() const |
| QList<T>::const_iterator | cbegin() const |
| QList<T>::const_iterator | cend() const |
| void | clear() |
| QList<T>::const_iterator | constBegin() const |
| QList<T>::const_pointer | constData() const |
| QList<T>::const_iterator | constEnd() const |
| const T & | constFirst() const |
| const T & | constLast() const |
| bool | contains(const AT&value) const |
| qsizetype | count(const AT&value) const |
| qsizetype | count() const |
| QList<T>::const_reverse_iterator | crbegin() const |
| QList<T>::const_reverse_iterator | crend() const |
| QList<T>::pointer | data() |
| QList<T>::const_pointer | data() const |
| void | detach() |
| QList<T>::iterator | emplace(qsizetype i, Args &&... args) |
| QList<T>::iterator | emplace(QList<T>::const_iterator before, Args &&... args) |
| QList<T>::reference | emplaceBack(Args &&... args) |
| QList<T>::reference | emplace_back(Args &&... args) |
| bool | empty() const |
| QList<T>::iterator | end() |
| QList<T>::const_iterator | end() const |
| bool | endsWith(QList<T>::parameter_type value) const |
| QList<T>::iterator | erase(QList<T>::const_iterator pos) |
| QList<T>::iterator | erase(QList<T>::const_iterator begin, QList<T>::const_iterator end) |
| QList<T> & | fill(QList<T>::parameter_type value, qsizetype size = -1) |
| T & | first() |
(since 6.0) QList<T> | first(qsizetype n) const |
| const T & | first() const |
| QList<T>::reference | front() |
| QList<T>::const_reference | front() const |
| qsizetype | indexOf(const AT&value, qsizetype from = 0) const |
| QList<T>::iterator | insert(qsizetype i, QList<T>::parameter_type value) |
| QList<T>::iterator | insert(qsizetype i, QList<T>::rvalue_ref value) |
| QList<T>::iterator | insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value) |
| QList<T>::iterator | insert(QList<T>::const_iterator before, QList<T>::parameter_type value) |
| QList<T>::iterator | insert(QList<T>::const_iterator before, QList<T>::rvalue_ref value) |
| QList<T>::iterator | insert(qsizetype i, qsizetype count, QList<T>::parameter_type value) |
| bool | isEmpty() const |
| T & | last() |
(since 6.0) QList<T> | last(qsizetype n) const |
| const T & | last() const |
| qsizetype | lastIndexOf(const AT&value, qsizetype from = -1) const |
| qsizetype | length() const |
(since 6.8) qsizetype | max_size() const |
| QList<T> | mid(qsizetype pos, qsizetype length = -1) const |
| void | move(qsizetype from, qsizetype to) |
| void | pop_back() |
| void | pop_front() |
| void | prepend(QList<T>::parameter_type value) |
| void | prepend(QList<T>::rvalue_ref value) |
| void | push_back(QList<T>::parameter_type value) |
| void | push_back(QList<T>::rvalue_ref value) |
| void | push_front(QList<T>::parameter_type value) |
| void | push_front(QList<T>::rvalue_ref value) |
| QList<T>::reverse_iterator | rbegin() |
| QList<T>::const_reverse_iterator | rbegin() const |
| void | remove(qsizetype i, qsizetype n = 1) |
| qsizetype | removeAll(const AT&t) |
| void | removeAt(qsizetype i) |
| void | removeFirst() |
(since 6.1) qsizetype | removeIf(Predicate pred) |
| void | removeLast() |
| bool | removeOne(const AT&t) |
| QList<T>::reverse_iterator | rend() |
| QList<T>::const_reverse_iterator | rend() const |
| void | replace(qsizetype i, QList<T>::parameter_type value) |
| void | replace(qsizetype i, QList<T>::rvalue_ref value) |
| void | reserve(qsizetype size) |
(since 6.0) void | resize(qsizetype size) |
(since 6.0) void | resize(qsizetype size, QList<T>::parameter_type c) |
(since 6.8) void | resizeForOverwrite(qsizetype size) |
| void | shrink_to_fit() |
| qsizetype | size() const |
(since 6.0) QList<T> | sliced(qsizetype pos, qsizetype n) const |
(since 6.0) QList<T> | sliced(qsizetype pos) const |
| void | squeeze() |
| bool | startsWith(QList<T>::parameter_type value) const |
| void | swap(QList<T>&other) |
| void | swapItemsAt(qsizetype i, qsizetype j) |
| T | takeAt(qsizetype i) |
| QList<T>::value_type | takeFirst() |
| QList<T>::value_type | takeLast() |
| T | value(qsizetype i) const |
| T | value(qsizetype i, QList<T>::parameter_type defaultValue) const |
| bool | operator!=(const QList<T>&other) const |
| QList<T> | operator+(QList<T> &&other) && |
| QList<T> | operator+(const QList<T>&other) && |
| QList<T> | operator+(QList<T> &&other) const & |
| QList<T> | operator+(const QList<T>&other) const & |
| QList<T> & | operator+=(const QList<T>&other) |
(since 6.0) QList<T> & | operator+=(QList<T> &&other) |
| QList<T> & | operator+=(QList<T>::parameter_type value) |
| QList<T> & | operator+=(QList<T>::rvalue_ref value) |
| bool | operator<(const QList<T>&other) const |
| QList<T> & | operator<<(QList<T>::parameter_type value) |
| QList<T> & | operator<<(const QList<T>&other) |
(since 6.0) QList<T> & | operator<<(QList<T> &&other) |
| QList<T> & | operator<<(QList<T>::rvalue_ref value) |
| bool | operator<=(const QList<T>&other) const |
| QList<T> & | operator=(QList<T>&&other) |
| QList<T> & | operator=(const QList<T>&other) |
| QList<T> & | operator=(std::initializer_list<T> args) |
| bool | operator==(const QList<T>&other) const |
| bool | operator>(const QList<T>&other) const |
| bool | operator>=bool (const QList<T>&other) const |
| QList<T>::reference | operator[](qsizetype i) |
| QList<T>::const_reference | operator[](qsizetype i) const |
정적 공용 멤버
(since 6.8) qsizetype | maxSize() |
관련 비멤버
(since 6.1) qsizetype | erase(QList<T> &list, const AT &t) |
(since 6.1) qsizetype | erase_if(QList<T> &list, Predicate pred) |
| size_t | qHash(const QList<T> &key, size_t seed = 0) |
| QDataStream & | operator<<(QDataStream &out, const QList<T> &list) |
(since 6.9) auto | operator<=>(const QList<T> &lhs, const QList<T> &rhs) |
| QDataStream & | operator>>(QDataStream &in, QList<T> &list) |
상세 설명
QList<T>는 Qt의 제네릭 컨테이너 클래스 중 하나로, 여기서 T 는 리스트에 저장되는 요소의 유형을 지정합니다. 이 클래스는 항목을 인접한 메모리 위치에 저장하며, 인덱스 기반의 빠른 접근을 제공합니다. QVector<T>는 Qt 5에서는 별도의 클래스였으나, 현재는 QList에 대한 단순한 별칭으로 사용됩니다.
QList<T>와 QVarLengthArray<T>는 유사한 API와 기능을 제공합니다. 두 클래스는 종종 상호 교환 가능하지만, 성능에 차이가 있습니다. 다음은 사용 사례에 대한 개요입니다:
- QList를 기본적으로 우선적으로 선택해야 합니다.
- QVarLengthArray 스택에 공간을 할당하는 배열을 제공하지만, 필요 시 힙으로 동적으로 확장될 수 있습니다. 일반적으로 크기가 작고 수명이 짧은 컨테이너에 사용하기에 적합합니다.
- 목록 중간에 상수 시간 삽입을 보장하고 인덱스 대신 이터레이터를 사용하여 항목에 접근하는 진정한 연결 리스트가 필요한 경우, std::list를 사용하십시오.
참고: QList 와 QVarLengthArray 는 모두 C 호환 배열 레이아웃을 보장합니다.
참고: Qt 5의QList는 항상 C 호환 배열 레이아웃을 갖지는 않았으며, 더 예측 가능한 성능을 위해 대신 QVector 를 사용할 것을 종종 권장했습니다. Qt 6에서는 더 이상 그렇지 않으며, 이제 두 클래스 모두 동일한 구현을 공유하므로 서로 바꿔서 사용할 수 있습니다.
다음은 정수를 저장하는 QList와 QString 값을 저장하는 QList의 예시입니다:
QList는 항목을 연속된 메모리 영역의 배열에 저장합니다. 일반적으로 리스트는 초기 크기를 지정하여 생성됩니다. 예를 들어, 다음 코드는 200개의 요소를 가진 QList를 생성합니다:
요소들은 기본 생성자 값으로 자동으로 초기화됩니다. 다른 값으로 리스트를 초기화하려면, 해당 값을 생성자의 두 번째 인수로 전달하면 됩니다:
또한 언제든지 ` fill()`를 호출하여 목록에 값을 채울 수 있습니다.
QList는 C++ 배열과 마찬가지로 0을 기준으로 하는 인덱스를 사용합니다. 특정 인덱스 위치에 있는 항목에 접근하려면 operator[]()를 사용할 수 있습니다. const가 아닌 리스트에서 operator[]()는 할당문의 왼쪽에서 사용할 수 있는 항목에 대한 참조를 반환합니다:
if (list[0] == "Liz")
list[0] = "Elizabeth";읽기 전용 액세스의 경우, at()을 사용하는 대안 구문이 있습니다:
for (qsizetype i = 0; i < list.size(); ++i) {
if (list.at(i) == "Alfonso")
cout << "Found Alfonso at position " << i << endl;
}at()는 깊은 복사가 발생하지 않기 때문에 operator[]()보다 더 빠를 수 있습니다.
QList에 저장된 데이터에 접근하는 또 다른 방법은 ` data()`를 호출하는 것입니다. 이 함수는 리스트의 첫 번째 항목에 대한 포인터를 반환합니다. 이 포인터를 사용하여 리스트에 저장된 요소에 직접 접근하고 수정할 수 있습니다. 또한 이 포인터는 일반 C++ 배열을 받는 함수에 QList를 전달해야 할 때도 유용합니다.
목록에서 특정 값이 나타나는 모든 위치를 찾으려면 ` indexOf()` 또는 ` lastIndexOf()`를 사용합니다. 전자는 지정된 인덱스 위치부터 앞으로 검색하고, 후자는 뒤로 검색합니다. 두 함수 모두 일치하는 항목을 찾으면 해당 항목의 인덱스를 반환하고, 그렇지 않으면 -1을 반환합니다. 예를 들어:
qsizetype i = list.indexOf("Harumi");
if (i != -1)
cout << "First occurrence of Harumi is at position " << i << endl;단순히 목록에 특정 값이 포함되어 있는지 확인하려면 ` contains()`를 사용하십시오. 목록에서 특정 값이 몇 번 나타나는지 확인하려면 ` count()`를 사용하십시오.
QList는 항목을 추가, 이동 및 제거하기 위한 다음과 같은 기본 함수를 제공합니다: insert(), replace(), remove(), prepend(), append(). append(), prepend() 및 replace()을 제외하고, 이러한 함수는 메모리 내에서 목록의 많은 항목을 한 칸씩 이동시켜야 하므로 큰 목록의 경우 처리 속도가 느릴 수 있습니다(선형 시간). 중간 위치에 대한 빠른 삽입/삭제 기능을 제공하는 컨테이너 클래스를 원한다면, 대신 std::list를 사용하십시오.
일반 C++ 배열과 달리, QList는 resize()를 호출하여 언제든지 크기를 조정할 수 있습니다. 새 크기가 기존 크기보다 큰 경우, QList는 전체 리스트를 재할당해야 할 수도 있습니다. QList는 실제 데이터에 필요한 양의 최대 두 배에 달하는 메모리를 미리 할당함으로써 재할당 횟수를 줄이려고 합니다.
QList를 점진적으로 구축하고 있으며, 포함될 요소의 대략적인 수를 미리 알고 있는 경우, ` reserve()`를 호출하여 QList에 특정 양의 메모리를 미리 할당하도록 요청할 수 있습니다. 또한 ` capacity()`를 호출하여 QList가 실제로 할당한 메모리 양을 확인할 수도 있습니다.
비const 연산자나 함수를 사용하면 암시적 공유로 인해 QList가 데이터의 심층 복사를 수행할 수 있다는 점에 유의하십시오.
QList의 값 유형은 할 당이 가능한 데이터 유형이어야 합니다. 이는 일반적으로 사용되는 대부분의 데이터 유형을 포함하지만, 예를 들어 컴파일러는 ` QWidget `를 값으로 저장하는 것을 허용하지 않으며, 대신 ` QWidget *`를 저장해야 합니다. 일부 함수에는 추가 요구 사항이 있습니다. 예를 들어, ` indexOf()` 및 ` lastIndexOf()`는 값 유형이 ` operator==()`를 지원해야 합니다. 이러한 요구 사항은 함수별로 문서화되어 있습니다.
항목을 반복 처리하는 방법에 대해서는 ‘컨테이너 반복 처리(Iterating over Containers)’를 참조하십시오. std::sort(), std::reverse(), std::count_if() 와 같이 <algorithm> 헤더의 함수와 함께 QList를 사용하는 방법에 대해서는 ‘Qt 컨테이너 및 std 알고리즘( Qt containers and std algorithms)’을 참조하십시오. qJoin() 및 qDeleteAll()와 같은 Qt 고유의 제네릭 알고리즘과 함께 QList를 사용하는 방법에 대해서는 ‘Qt 제네릭 알고리즘( <QtAlgorithms>)’을 참조하십시오.
QList 외에도 Qt는 속도를 위해 최적화되어 있으며 기능이 거의 없는 매우 저수준의 클래스인 QVarLengthArray 를 제공합니다.
Qt 컨테이너 사용에 관한 추가 정보
Qt 컨테이너끼리, 그리고 STL 컨테이너와 비교한 자세한 내용은 Qt 컨테이너 이해를 참조하십시오.
최대 크기와 메모리 부족 상황
QList의 최대 크기는 아키텍처에 따라 다릅니다. 대부분의 64비트 시스템은 2GB 이상의 메모리를 할당할 수 있으며, 일반적인 제한은 2^63바이트입니다. 실제 값은 데이터 블록을 관리하는 데 필요한 오버헤드에 따라 달라집니다. 따라서 32비트 플랫폼에서는 2GB에서 오버헤드를 뺀 값을, 64비트 플랫폼에서는 2^63바이트에서 오버헤드를 뺀 값을 최대 크기로 예상할 수 있습니다. QList에 저장할 수 있는 요소의 수는 이 최대 크기를 저장된 요소의 크기로 나눈 값입니다.
메모리 할당이 실패하면 QList는 ` Q_CHECK_PTR ` 매크로를 사용하며, 애플리케이션이 예외 처리를 지원하도록 컴파일된 경우 ` std::bad_alloc ` 예외를 발생시킵니다. 예외 처리가 비활성화된 경우, 메모리 부족은 정의되지 않은 동작으로 간주됩니다.
운영 체제는 할당된 메모리, 특히 크고 연속적인 블록을 많이 차지하는 애플리케이션에 대해 추가적인 제한을 부과할 수 있다는 점에 유의하십시오. 이러한 고려 사항, 해당 동작의 구성 또는 완화 조치는 Qt API의 범위를 벗어납니다.
멤버 유형 문서
[alias] QList::ConstIterator
QList::const_iterator 의 Qt 스타일 동의어.
[alias] QList::Iterator
QList::iterator 의 Qt 스타일 동의어.
[alias] QList::const_pointer
STL 호환성을 위해 제공됩니다.
[alias] QList::const_reference
STL 호환성을 위해 제공됩니다.
[alias] QList::const_reverse_iterator
QList::const_reverse_iterator typedef는 ` QList`에 대해 STL 스타일의 const 역방향 이터레이터를 제공합니다.
경고: 암시적으로 공유되는 컨테이너의이터레이터는 STL 이터레이터와 정확히 동일하게 작동하지 않습니다. 해당 컨테이너에 이터레이터가 활성화된 상태에서는 컨테이너를 복사하지 않도록 해야 합니다. 자세한 내용은 ‘암시적 공유 이터레이터 문제’를 참조하십시오.
경고: ` QList `이 수정되면이터레이터가 무효화됩니다. 기본적으로 모든 이터레이터가 무효화된 것으로 간주하십시오. 이 규칙의 예외 사항은 명시적으로 문서화되어 있습니다.
또한 QList::rbegin(), QList::rend(), QList::reverse_iterator 및 QList::const_iterator 을참조하십시오 .
[alias] QList::difference_type
STL 호환성을 위해 제공됩니다.
[alias] QList::parameter_type
[alias] QList::pointer
STL 호환성을 위해 제공됩니다.
[alias] QList::reference
STL 호환성을 위해 제공됩니다.
[alias] QList::reverse_iterator
QList::reverse_iterator typedef는 ` QList`에 대해 STL 스타일의 비const 역방향 이터레이터를 제공합니다.
경고: 암시적으로 공유되는 컨테이너의이터레이터는 STL 이터레이터와 정확히 동일하게 작동하지 않습니다. 해당 컨테이너에 이터레이터가 활성화된 상태에서는 컨테이너를 복사하지 않도록 해야 합니다. 자세한 내용은 ‘암시적 공유 이터레이터 문제’를 참조하십시오.
경고: ` QList `가 수정되면이터레이터는 무효화됩니다. 기본적으로 모든 이터레이터가 무효화된다고 간주하십시오. 이 규칙의 예외 사항은 명시적으로 문서화되어 있습니다.
또한 QList::rbegin(), QList::rend(), QList::const_reverse_iterator 및 QList::iterator 을참조하십시오 .
[alias] QList::rvalue_ref
[alias] QList::size_type
STL 호환성을 위해 제공됩니다.
[alias] QList::value_type
STL 호환성을 위해 제공됩니다.
멤버 함수 문서
[constexpr noexcept default] QList::QList()
빈 리스트를 생성합니다.
resize()도 참조하십시오 .
[explicit] QList::QList(qsizetype size)
size 개의 요소로 구성된 리스트를 생성합니다.
요소들은 기본 생성된 값으로 초기화됩니다.
resize()도 참조하십시오 .
QList::QList(std::initializer_list<T> args)
args 로 지정된 std::initializer_list로부터 리스트를 생성합니다.
template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList::QList(InputIterator first, InputIterator last)
이테레이터 범위 [first, last) 내의 내용을 포함하는 리스트를 생성합니다.
InputIterator 의 값 유형은 T 로 변환 가능해야 합니다.
제약 조건
InputIterator 가 LegacyInputIterator의 요구 사항을 충족하는 경우에만 오버로드 해결에 참여합니다.
QList::QList(qsizetype size, QList<T>::parameter_type value)
size 개의 요소를 가진 리스트를 생성합니다. 각 요소는 value 로 초기화됩니다.
[since 6.8] QList::QList(qsizetype size, Qt::Initialization)
size 개의 요소를 초기 크기로 갖는 목록을 생성합니다.
QList는 요소를 초기화하지 않으려고 시도합니다.
구체적으로:
T에Qt::Uninitialized를 인수로 받는 생성자가 있는 경우, 해당 생성자가 요소를 초기화하는 데 사용됩니다.- 그렇지 않은 경우, 각 요소는 기본 생성자로 생성됩니다. 간단히 생성 가능한 유형(
int,float등)의 경우, 이는 요소를 초기화하지 않는 것과 동일합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
resizeForOverwrite()도 참조하십시오 .
[implicit] QList::QList(const QList<T> &other)
other 의 복사본을 생성합니다.
QList는 암시적으로 공유되므로 이 작업은 상수 시간 내에 완료됩니다. 이로 인해 함수에서 QList를 반환하는 작업이 매우 빠르게 수행됩니다. 공유된 인스턴스가 수정되면 해당 인스턴스가 복사되며(쓰기 시 복사), 이 작업에는 선형 시간이 소요됩니다.
operator=()도 참조하십시오 .
[implicit] QList::QList(QList<T> &&other)
QList 인스턴스를 이동 생성하여, 해당 인스턴스가 ` other `가 가리키던 것과 동일한 객체를 가리키도록 합니다.
[implicit] QList::~QList()
목록을 삭제합니다.
void QList::append(QList<T>::parameter_type value)
목록의 끝에 ` value `를 삽입합니다.
예시:
QList<QString> list;
list.append("one");
list.append("two");
QString three = "three";
list.append(three);
// list: ["one", "two", "three"]
// three: "three"이는 resize(size() + 1)을 호출하고, 리스트의 새로운 마지막 요소에 value 를 할당하는 것과 동일합니다.
QList 는 일반적으로 필요한 양보다 더 많은 메모리를 할당하므로, 매번 리스트 전체를 재할당하지 않고도 크기를 늘릴 수 있기 때문에 이 작업은 비교적 빠릅니다.
operator<<(), prepend(), insert()도 참조하십시오 .
[since 6.0] void QList::append(QList<T> &&value)
value 목록의 항목들을 이 목록의 맨 끝으로 이동합니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
operator<<() 및 operator+=()도 참조하십시오 .
void QList::append(QList<T>::rvalue_ref value)
예시:
QList<QString> list;
list.append("one");
list.append("two");
QString three = "three";
list.append(std::move(three));
// list: ["one", "two", "three"]
// three: ""이것은 오버로드된 함수입니다.
void QList::append(const QList<T> &value)
value 리스트의 항목들을 이 리스트에 추가합니다.
이 함수는 오버로드된 함수입니다.
operator<<() 및 operator+=()도 참조하십시오 .
[since 6.6] QList<T> &QList::assign(std::initializer_list<T> l)
이 리스트의 내용을 l 의 요소 사본으로 대체합니다.
이 리스트의 크기는 l 의 요소 개수와 같아집니다.
이 함수는 l 의 요소 수가 이 목록의 용량을 초과하거나 이 목록이 공유된 경우에만 메모리를 할당합니다.
이 함수는 Qt 6.6에서 도입되었습니다.
[since 6.6] template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList<T> &QList::assign(InputIterator first, InputIterator last)
이 리스트의 내용을 반복자 범위 [first, last) 내 요소들의 복사본으로 대체합니다.
이 리스트의 크기는 범위 [first, last) 내의 요소 수와 같아집니다.
이 함수는 범위의 요소 수가 이 리스트의 용량을 초과하거나 이 리스트가 공유된 경우에만 메모리를 할당합니다.
참고: 인자 중 하나가 *this를 가리키는 이터레이터인 경우,동작은 정의되지 않습니다.
제약 조건
InputIterator 가 LegacyInputIterator의 요구 사항을 충족하는 경우에만 오버로드 해결에 참여합니다.
이 함수는 Qt 6.6에서 도입되었습니다.
[since 6.6] QList<T> &QList::assign(qsizetype n, QList<T>::parameter_type t)
이 목록의 내용을 t 의 n 부로 대체합니다.
이 리스트의 크기는 n 와 같아집니다.
n 가 리스트의 용량을 초과하거나 이 리스트가 공유된 경우에만 이 함수는 메모리를 할당합니다.
이 함수는 Qt 6.6에서 도입되었습니다.
[noexcept] QList<T>::const_reference QList::at(qsizetype i) const
목록에서 인덱스 위치 i 에 있는 항목을 반환합니다.
i i 는 리스트에서 유효한 인덱스 위치여야 합니다(즉, 0 <= < ()). size
value() 및 operator[]()도 참조하십시오 .
QList<T>::reference QList::back()
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 ` last()`와 동일합니다.
[noexcept] QList<T>::const_reference QList::back() const
이것은 오버로드된 함수입니다.
QList<T>::iterator QList::begin()
목록의 첫 번째 항목을 가리키는 STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QList `가 수정될 경우 무효화됩니다.
참조: ` constBegin()` 및 ` end()`.
[noexcept] QList<T>::const_iterator QList::begin() const
이것은 오버로드된 함수입니다.
qsizetype QList::capacity() const
재할당을 유발하지 않고 목록에 저장할 수 있는 최대 항목 수를 반환합니다.
이 함수의 유일한 목적은 ` QList`의 메모리 사용량을 미세 조정할 수 있는 수단을 제공하는 것입니다. 일반적으로 이 함수를 호출할 일은 거의 없습니다. 리스트에 몇 개의 항목이 있는지 알고 싶다면 ` size()`를 호출하십시오.
참고: 정적으로 할당된리스트는 비어 있지 않더라도 용량이 0으로 보고됩니다.
경고: 할당된 메모리 블록 내의 여유공간 위치는 정의되지 않습니다. 즉, 여유 메모리가 항상 리스트의 끝에 위치한다고 가정해서는 안 됩니다. 리스트 끝에 충분한 공간이 있는지 확인하려면 reserve()를 호출하십시오.
reserve() 및 squeeze()도 참조하십시오 .
[noexcept] QList<T>::const_iterator QList::cbegin() const
목록의 첫 번째 항목을 가리키는 STL 스타일의 const 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QList `가 수정될 경우 무효화됩니다.
[noexcept] QList<T>::const_iterator QList::cend() const
목록의 마지막 항목 바로 다음을 가리키는 const STL 스타일 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QList `가 수정될 경우 무효화됩니다.
void QList::clear()
목록에서 모든 요소를 제거합니다.
이 리스트가 공유되지 않는 경우, ` capacity()`는 유지됩니다. 초과 용량을 제거하려면 ` squeeze()`를 사용하십시오.
참고: Qt 5.7 이전 버전( QVector 의 경우) 및 6.0 이전 버전( QList 의 경우)에서는 이 함수가 용량을 보존하는 대신 리스트가 사용하던 메모리를 해제했습니다.
resize() 및 squeeze()도 참조하십시오 .
[noexcept] QList<T>::const_iterator QList::constBegin() const
목록의 첫 번째 항목을 가리키는 const STL 스타일 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 연결이 해제되거나 ` QList `이 수정될 경우 무효화됩니다.
begin() 및 constEnd()도 참조하십시오 .
[noexcept] QList<T>::const_pointer QList::constData() const
목록에 저장된 데이터에 대한 const 포인터를 반환합니다. 이 포인터를 사용하여 목록의 항목에 접근할 수 있습니다.
경고: 리스트에서 분리되거나 리스트 QList 가 수정되면이 포인터는 무효화됩니다.
이 함수는 주로 일반 C++ 배열을 받는 함수에 리스트를 전달할 때 유용합니다.
data() 및 operator[]()도 참조하십시오 .
[noexcept] QList<T>::const_iterator QList::constEnd() const
목록의 마지막 항목 바로 다음을 가리키는 const STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QList `가 수정될 경우 무효화됩니다.
constBegin() 및 end()도 참조하십시오 .
[noexcept] const T &QList::constFirst() const
목록의 첫 번째 항목에 대한 const 참조를 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다.
constLast(), isEmpty(), first()도 참조하십시오 .
[noexcept] const T &QList::constLast() const
목록의 마지막 항목에 대한 const 참조를 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다.
constFirst(), isEmpty(), last()도 참조하십시오 .
[noexcept] template <typename AT> bool QList::contains(const AT &value) const
목록에 value 가 포함되어 있으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수를 사용하려면 값 유형이 ` operator==()`을 구현하고 있어야 합니다.
[noexcept] template <typename AT = T> qsizetype QList::count(const AT &value) const
목록 내에서 ` value `가 나타나는 횟수를 반환합니다.
이 함수를 사용하려면 값 유형에 ` operator==()` 구현이 있어야 합니다.
contains() 및 indexOf()도 참조하십시오 .
[constexpr noexcept] qsizetype QList::count() const
size()와 동일합니다.
이 함수는 오버로드된 함수입니다.
[noexcept] QList<T>::const_reverse_iterator QList::crbegin() const
목록의 첫 번째 항목을 역순으로 가리키는 const STL 스타일의 역방향 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 QList 가 수정될 경우 무효화됩니다.
참조: ` begin()`, ` rbegin()`, ` rend()`.
[noexcept] QList<T>::const_reverse_iterator QList::crend() const
목록의 마지막 항목 바로 뒤를 가리키는, 역순으로 정렬된 STL 스타일의 const 역방향 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 QList 가 수정될 경우 무효화됩니다.
참조: ` end()`, ` rend()`, ` rbegin()`.
QList<T>::pointer QList::data()
목록에 저장된 데이터에 대한 포인터를 반환합니다. 이 포인터를 사용하여 목록 내의 항목에 접근하고 수정할 수 있습니다.
예시:
QList<int> list(10);
int *data = list.data();
for (qsizetype i = 0; i < 10; ++i)
data[i] = 2 * i;경고: 포인터는 리스트에서 분리되거나 ` QList `가 수정될 경우 무효화됩니다.
이 함수는 주로 일반 C++ 배열을 받는 함수에 리스트를 전달할 때 유용합니다.
참조: ` constData()` 및 ` operator[]()`.
[noexcept] QList<T>::const_pointer QList::data() const
이것은 오버로드된 함수입니다.
void QList::detach()
이 QList 의 데이터가 더 이상 다른 인스턴스와 공유되지 않도록 합니다.
template <typename... Args> QList<T>::iterator QList::emplace(qsizetype i, Args &&... args)
i 위치에 새 요소를 삽입하여 컨테이너를 확장합니다. 이 새 요소는 args 을 생성 인자로 사용하여 제자리에서 생성됩니다.
새로운 요소에 대한 이터레이터를 반환합니다.
예시:
참고: 요소는 처음에는 제자리에서 생성되는것이 보장되지만 , 그 이후에는 복사되거나 올바른 위치로 이동될 수 있습니다.
emplaceBack도 참조하십시오 .
template <typename... Args> QList<T>::iterator QList::emplace(QList<T>::const_iterator before, Args &&... args)
이테레이터 before 가 가리키는 항목 앞에 새로운 요소를 생성합니다. 이 새로운 요소는 args 를 생성 인자로 사용하여 제자리에서 생성됩니다.
새로운 요소에 대한 이터레이터를 반환합니다.
이 함수는 오버로드된 함수입니다.
template <typename... Args> QList<T>::reference QList::emplaceBack(Args &&... args)
template <typename... Args> QList<T>::reference QList::emplace_back(Args &&... args)
컨테이너의 끝에 새로운 요소를 추가합니다. 이 새로운 요소는 ` args `를 생성 인수로 사용하여 현장에서 생성됩니다.
새 요소에 대한 참조를 반환합니다.
예시:
QList<QString> list{"one", "two"};
list.emplaceBack(3, 'a');
qDebug() << list;
// 목록: ["one", "two", "aaa"]반환된 참조를 사용하여 새로 생성된 객체에 접근할 수도 있습니다:
이는 list.emplace(list.size(), args)와 동일합니다.
emplace도 참조하십시오 .
[noexcept] bool QList::empty() const
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 ` isEmpty()`와 동일하며, 리스트가 비어 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
QList<T>::iterator QList::end()
목록의 마지막 항목 바로 다음을 가리키는 STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QList `가 수정될 경우 무효화됩니다.
begin() 및 constEnd()도 참조하십시오 .
[noexcept] QList<T>::const_iterator QList::end() const
이것은 오버로드된 함수입니다.
bool QList::endsWith(QList<T>::parameter_type value) const
이 리스트가 비어 있지 않고 마지막 요소가 value 와 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
QList<T>::iterator QList::erase(QList<T>::const_iterator pos)
pos 이터레이터가 가리키는 항목을 목록에서 제거하고, 목록의 다음 항목을 가리키는 이터레이터를 반환합니다( end()일 수 있음).
요소를 제거해도 리스트의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면 squeeze()를 호출하십시오.
참고: QList 가 암시적으로 공유되지 않는경우 , 이 함수는 지정된 위치 또는 그 이후의 이터레이터만 무효화합니다.
QList<T>::iterator QList::erase(QList<T>::const_iterator begin, QList<T>::const_iterator end)
begin 에 있는 모든 항목을 end 까지(해당 항목은 제외) 제거합니다. 호출 전에 end 가 가리키던 항목에 대한 이터레이터를 반환합니다.
요소를 제거해도 리스트의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면 squeeze()를 호출하십시오.
참고: QList 가 암시적으로 공유되지 않는경우 , 이 함수는 지정된 위치나 그 이후의 이터레이터만 무효화합니다.
이 함수는 오버로드된 함수입니다.
QList<T> &QList::fill(QList<T>::parameter_type value, qsizetype size = -1)
목록의 모든 항목에 ` value `을 할당합니다. ` size `이 -1(기본값)과 다를 경우, 목록은 사전에 ` size ` 크기로 조정됩니다.
예:
QList<QString> list(3);
list.fill("Yes");
// list: ["Yes", "Yes", "Yes"]
list.fill("oh", 5);
// list: ["oh", "oh", "oh", "oh", "oh"]resize()도 참조하십시오 .
T &QList::first()
목록의 첫 번째 항목에 대한 참조를 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다.
last(), isEmpty() 및 constFirst()도 참조하십시오 .
[since 6.0] QList<T> QList::first(qsizetype n) const
이 목록의 처음 n 개 요소를 포함하는 하위 목록을 반환합니다.
참고: n < 0이거나 n > size()인 경우동작이 정의되지 않습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[noexcept] const T &QList::first() const
이것은 오버로드된 함수입니다.
QList<T>::reference QList::front()
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 ` first()`와 동일합니다.
[noexcept] QList<T>::const_reference QList::front() const
이것은 오버로드된 함수입니다.
[noexcept] template <typename AT> qsizetype QList::indexOf(const AT &value, qsizetype from = 0) const
from 인덱스 위치부터 앞으로 검색하여, 목록에서 ‘ value ’가 처음 나타나는 인덱스 위치를 반환합니다. 일치하는 항목이 없으면 -1을 반환합니다.
예시:
QList<QString> list{"A", "B", "C", "B", "A"};
list.indexOf("B"); // returns 1
list.indexOf("B", 1); // returns 1
list.indexOf("B", 2); // returns 3
list.indexOf("X"); // returns -1이 함수를 사용하려면 값 유형에 ` operator==()` 메서드가 구현되어 있어야 합니다.
lastIndexOf() 및 contains()도 참조하십시오 .
QList<T>::iterator QList::insert(qsizetype i, QList<T>::parameter_type value)
QList<T>::iterator QList::insert(qsizetype i, QList<T>::rvalue_ref value)
목록의 인덱스 위치 i 에 value 를 삽입합니다. i 가 0이면, 해당 값이 목록의 맨 앞에 추가됩니다. i 가 size()이면, 해당 값이 목록의 맨 뒤에 추가됩니다.
예시:
QList<QString> list = {"alpha", "beta", "delta"};
list.insert(2, "gamma");
// list: ["alpha", "beta", "gamma", "delta"]목록이 큰 경우, 이 연산은 인덱스 i 이상에 있는 모든 항목을 메모리 내에서 한 위치씩 이동시켜야 하므로 속도가 느릴 수 있습니다(선형 시간). 빠른 insert() 함수를 제공하는 컨테이너 클래스를 원한다면, 대신 std::list를 사용하십시오.
append(), prepend(), remove()도 참조하십시오 .
QList<T>::iterator QList::insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value)
이테레이터 ` before`가 가리키는 항목 앞에 ` value `의 ` count `개 복사본을 삽입합니다. 삽입된 항목 중 첫 번째를 가리키는 이테레이터를 반환합니다.
QList<T>::iterator QList::insert(QList<T>::const_iterator before, QList<T>::parameter_type value)
QList<T>::iterator QList::insert(QList<T>::const_iterator before, QList<T>::rvalue_ref value)
이테레이터 before 가 가리키는 항목 앞에 value 를 삽입합니다. 삽입된 항목을 가리키는 이테레이터를 반환합니다.
QList<T>::iterator QList::insert(qsizetype i, qsizetype count, QList<T>::parameter_type value)
목록의 인덱스 위치 i 에 value 의 count 개의 복사본을 삽입합니다.
예시:
QList<double> list = {2.718, 1.442, 0.4342};
list.insert(1, 3, 9.9);
// list: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]이 함수는 오버로드된 함수입니다.
[constexpr noexcept] bool QList::isEmpty() const
목록의 크기가 0이면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
T &QList::last()
목록의 마지막 항목에 대한 참조를 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다.
first(), isEmpty(), constLast()도 참조하십시오 .
[since 6.0] QList<T> QList::last(qsizetype n) const
이 목록의 마지막 n 개 요소를 포함하는 하위 목록을 반환합니다.
참고: n < 0이거나 n > size()인 경우동작이 정의되지 않습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[noexcept] const T &QList::last() const
이것은 오버로드된 함수입니다.
[noexcept] template <typename AT> qsizetype QList::lastIndexOf(const AT &value, qsizetype from = -1) const
from 인덱스 위치에서 역방향으로 검색하여, 목록 내에서 값 value 이 마지막으로 나타나는 인덱스 위치를 반환합니다. from 이 -1(기본값)인 경우, 검색은 마지막 항목에서 시작됩니다. 일치하는 항목이 없으면 -1을 반환합니다.
예:
QList<QString> list = {"A", "B", "C", "B", "A"};
list.lastIndexOf("B"); // returns 3
list.lastIndexOf("B", 3); // returns 3
list.lastIndexOf("B", 2); // returns 1
list.lastIndexOf("X"); // returns -1이 함수를 사용하려면 값의 유형이 ` operator==()`를 구현하고 있어야 합니다.
indexOf()도 참조하십시오 .
[constexpr noexcept] qsizetype QList::length() const
[static constexpr, since 6.8] qsizetype QList::maxSize()
[constexpr noexcept, since 6.8] qsizetype QList::max_size() const
이 함수는 목록이 이론적으로 수용할 수 있는 최대 요소 수를 반환합니다. 실제로는 시스템에서 사용할 수 있는 메모리 양에 의해 제한되어 이 수치가 훨씬 더 작을 수 있습니다.
이 함수들은 Qt 6.8에서 도입되었습니다.
QList<T> QList::mid(qsizetype pos, qsizetype length = -1) const
이 리스트의 요소 중 pos 위치부터 시작하는 요소들을 포함하는 하위 리스트를 반환합니다. length 가 -1(기본값)인 경우, pos 이후의 모든 요소가 포함되며, 그렇지 않은 경우 length 개의 요소(또는 length 보다 적은 수의 요소가 있는 경우 나머지 모든 요소)가 포함됩니다.
void QList::move(qsizetype from, qsizetype to)
인덱스 위치 from 에 있는 항목을 인덱스 위치 to 로 이동합니다.
from 또한 to 은 범위를 벗어나지 않아야 합니다.
예를 들어, 첫 번째 항목을 목록의 끝으로 이동하려면:
QList<int> list = {1, 2, 3};
list.move(0, list.size() - 1);
qDebug() << list; // Prints "QList(2, 3, 1)"[noexcept] void QList::pop_back()
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 ` removeLast()`와 동일합니다.
[noexcept] void QList::pop_front()
이 함수는 STL 호환성을 위해 제공됩니다. 이는 ` removeFirst()`와 동일합니다.
목록의 맨 앞에 “ value ”를 삽입합니다.
예시:
QList<QString> list;
list.prepend("one");
list.prepend("two");
list.prepend("three");
// list: ["three", "two", "one"]이는 list.insert(0, value)와 동일합니다.
일반적으로 이 연산은 비교적 빠릅니다(평균 상수 시간). QList 는 리스트 데이터의 맨 앞에 추가 메모리를 할당할 수 있으며, 매 연산마다 데이터를 재할당하거나 이동하지 않고도 그 방향으로 확장할 수 있습니다. 그러나 상수 시간의 선행 삽입이 보장되는 컨테이너 클래스를 원한다면 std::list를 사용하십시오. 그렇지 않은 경우에는 QList 를 사용하는 것이 좋습니다.
void QList::push_back(QList<T>::parameter_type value)
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 append(value)와 동일합니다.
void QList::push_back(QList<T>::rvalue_ref value)
이것은 오버로드된 함수입니다.
void QList::push_front(QList<T>::parameter_type value)
void QList::push_front(QList<T>::rvalue_ref value)
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 prepend(value)와 동일합니다.
QList<T>::reverse_iterator QList::rbegin()
목록의 첫 번째 항목을 가리키는 STL 스타일의 역방향 이터레이터를 반환하며, 순서는 역순입니다.
경고: 반환된 이터레이터는 분리되거나 QList 가 수정되면 무효화됩니다.
참조: begin(), crbegin(), rend().
[noexcept] QList<T>::const_reverse_iterator QList::rbegin() const
이 함수는 오버로드된 함수입니다.
void QList::remove(qsizetype i, qsizetype n = 1)
인덱스 위치 i 부터 시작하여 리스트에서 n 요소를 제거합니다.
요소를 제거해도 리스트의 용량은 유지되며, 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면 squeeze()을 호출하십시오.
참고: ` QList `가 암시적으로 공유되지 않는경우 , 이 함수는 지정된 위치 또는 그 이후의 이터레이터만 무효화합니다.
insert(), replace(), fill()도 참조하십시오 .
template <typename AT = T> qsizetype QList::removeAll(const AT &t)
t 와 동일한 모든 요소를 목록에서 제거합니다. 제거된 요소가 있는 경우, 그 개수를 반환합니다.
요소를 제거해도 리스트의 용량은 유지되며, 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면 squeeze()를 호출하십시오.
removeOne()도 참조하십시오 .
void QList::removeAt(qsizetype i)
인덱스 위치 i 에 있는 요소를 제거합니다. 다음과 동일합니다.
remove(i);요소를 제거해도 리스트의 용량은 유지되며 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면 squeeze()를 호출하십시오.
참고: QList 가 암시적으로 공유되지 않는경우 , 이 함수는 지정된 위치 또는 그 이후의 이터레이터만 무효화합니다.
remove()도 참조하십시오 .
[noexcept] void QList::removeFirst()
목록의 첫 번째 항목을 제거합니다. 이 함수를 호출하는 것은 remove(0)을 호출하는 것과 동일합니다. 목록은 비어 있어서는 안 됩니다. 목록이 비어 있을 수 있는 경우, 이 함수를 호출하기 전에 isEmpty()을 호출하십시오.
요소를 제거해도 리스트의 용량은 유지되며, 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면 squeeze()를 호출하십시오.
remove(), takeFirst(), isEmpty()도 참조하십시오 .
[since 6.1] template <typename Predicate> qsizetype QList::removeIf(Predicate pred)
pred 조건식이 참을 반환하는 모든 요소를 목록에서 제거합니다. 제거된 요소가 있는 경우, 그 개수를 반환합니다.
이 함수는 Qt 6.1에서 도입되었습니다.
removeAll()도 참조하십시오 .
[noexcept] void QList::removeLast()
목록의 마지막 항목을 제거합니다. 이 함수를 호출하는 것은 remove(size() - 1)을 호출하는 것과 동일합니다. 목록은 비어 있어서는 안 됩니다. 목록이 비어 있을 수 있다면, 이 함수를 호출하기 전에 isEmpty()를 호출하십시오.
요소를 제거해도 리스트의 용량은 유지되며, 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 확보하려면 squeeze()를 호출하십시오.
remove(), takeLast(), removeFirst() 및 isEmpty()도 참조하십시오 .
template <typename AT = T> bool QList::removeOne(const AT &t)
t 와 동일한 첫 번째 요소를 목록에서 제거합니다. 요소가 실제로 제거되었는지 여부를 반환합니다.
요소를 제거해도 리스트의 용량은 유지되며, 할당된 메모리 양은 줄어들지 않습니다. 여분의 용량을 줄이고 가능한 한 많은 메모리를 해제하려면 squeeze()를 호출하십시오.
removeAll()도 참조하십시오 .
QList<T>::reverse_iterator QList::rend()
목록의 마지막 항목 바로 다음 위치를 가리키는, 역순의 STL 스타일 역방향 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 QList 가 수정될 경우 무효화됩니다.
참조: ` end()`, ` crend()`, ` rbegin()`.
[noexcept] QList<T>::const_reverse_iterator QList::rend() const
이것은 오버로드된 함수입니다.
void QList::replace(qsizetype i, QList<T>::parameter_type value)
void QList::replace(qsizetype i, QList<T>::rvalue_ref value)
인덱스 위치 i 에 있는 항목을 value 로 대체합니다.
i i 는 목록 내에서 유효한 인덱스 위치여야 합니다(즉, 0 <= < ()). size
operator[]() 및 remove()도 참조하십시오 .
void QList::reserve(qsizetype size)
size 개 이상의 요소에 대해 메모리를 할당하려고 시도합니다.
리스트의 크기를 미리 알고 있다면, 재할당 및 메모리 단편화를 방지하기 위해 이 함수를 호출해야 합니다. 또한 리스트의 크기를 자주 조정하는 경우에도 더 나은 성능을 얻을 가능성이 높습니다.
필요한 공간이 얼마인지 확실하지 않은 경우, 일반적으로 size 을 상한값으로 사용하거나, 엄격한 상한값이 이보다 훨씬 클 경우 가장 가능성이 높은 크기에 대한 높은 추정치를 사용하는 것이 좋습니다. size 가 과소 추정된 경우, 예약된 크기를 초과하면 필요에 따라 리스트가 확장되는데, 이로 인해 가장 낙관적인 추정치보다 더 큰 할당이 발생하여 이를 유발한 작업의 속도가 느려질 수 있습니다.
경고: reserve ()는 메모리를 예약하지만 리스트의 크기를 변경하지는 않습니다. 리스트의 현재 끝을 넘어선 데이터에 접근하는 것은 정의되지 않은 동작입니다. 리스트의 현재 끝을 넘어선 메모리에 접근해야 하는 경우, resize()를 사용하십시오.
squeeze(), capacity(), resize()도 참조하십시오 .
[since 6.0] void QList::resize(qsizetype size)
[since 6.0] void QList::resize(qsizetype size, QList<T>::parameter_type c)
리스트의 크기를 ` size`로 설정합니다. ` size `가 현재 크기보다 크면 요소가 끝부분에 추가되며, 새로운 요소는 기본 생성자 값이나 ` c`로 초기화됩니다. ` size `가 현재 크기보다 작으면 끝부분의 요소가 제거됩니다.
이 리스트가 공유되지 않는 경우, ` capacity()` 값은 유지됩니다. 초과 용량을 제거하려면 ` squeeze()`를 사용하십시오.
참고: Qt 5.7 이전 버전( QVector 의 경우; QList 는 6.0까지 resize()이 없었습니다)에서는 이 함수가 용량을 보존하는 대신 리스트가 사용하던 메모리를 해제했습니다.
이 함수들은 Qt 6.0에서 도입되었습니다.
size()도 참조하십시오 .
[since 6.8] void QList::resizeForOverwrite(qsizetype size)
목록의 크기를 ` size`로 설정합니다. ` size `가 현재 크기보다 작으면, 끝 부분에서 요소가 제거됩니다. ` size `가 현재 크기보다 크면, 끝 부분에 요소가 추가됩니다. ` QList `를 사용하면 이러한 새 요소를 초기화하지 않으려 시도합니다.
구체적으로:
T에Qt::Uninitialized을 인수로 받는 생성자가 있는 경우, 해당 생성자가 요소를 초기화하는 데 사용됩니다;- 그렇지 않은 경우, 각 요소는 기본 생성됩니다. 간단히 생성 가능한 유형(예:
int,float등)의 경우, 이는 해당 요소를 초기화하지 않는 것과 동일합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
void QList::shrink_to_fit()
이 함수는 STL 호환성을 위해 제공됩니다. 이 함수는 ` squeeze()`와 동일합니다.
[constexpr noexcept] qsizetype QList::size() const
목록에 포함된 항목의 개수를 반환합니다.
isEmpty() 및 resize()도 참조하십시오 .
[since 6.0] QList<T> QList::sliced(qsizetype pos, qsizetype n) const
이 목록의 n 개 요소를 포함하는 부분 목록을, 위치 pos 부터 시작하여 반환합니다.
참고: ` pos ` < 0, ` n ` < 0, 또는 ` pos + n ` > ` size()`인 경우동작이 정의되지 않습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[since 6.0] QList<T> QList::sliced(qsizetype pos) const
이 리스트의 pos 위치부터 끝까지의 요소를 포함하는 하위 리스트를 반환합니다.
참고: pos < 0이거나 pos > size()인 경우동작이 정의되지 않습니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
void QList::squeeze()
항목을 저장하는 데 필요하지 않은 메모리를 해제합니다.
이 함수의 유일한 목적은 QList 의 메모리 사용량을 미세 조정할 수 있는 수단을 제공하는 것입니다. 일반적으로 이 함수를 호출해야 할 일은 거의 없습니다.
reserve() 및 capacity()도 참조하십시오 .
bool QList::startsWith(QList<T>::parameter_type value) const
이 목록이 비어 있지 않고 첫 번째 항목이 value 와 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
[noexcept] void QList::swap(QList<T> &other)
이 목록을 other 와 교환합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.
void QList::swapItemsAt(qsizetype i, qsizetype j)
인덱스 위치 ` i `에 있는 항목과 인덱스 위치 ` j`에 있는 항목을 서로 바꾸십시오. 이 함수는 ` i `와 ` j `가 모두 0 이상이지만 ` size` ()보다 작다고 가정합니다. 오류를 방지하려면 ` i `와 ` j `가 모두 0 이상이며 ` size` ()보다 작은지 확인하십시오.
T QList::takeAt(qsizetype i)
인덱스 위치 i 에 있는 요소를 제거하고 해당 요소를 반환합니다.
다음과 동일합니다.
T t = at(i);
remove(i);
return t;참고: QList 가 암시적으로 공유되지 않은경우 , 이 함수는 지정된 위치나 그 이후의 이터레이터만 무효화합니다.
takeFirst() 및 takeLast()도 참조하십시오 .
QList<T>::value_type QList::takeFirst()
목록의 첫 번째 항목을 제거하고 해당 항목을 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다. 오류가 발생하지 않도록 하려면 이 함수를 호출하기 전에 isEmpty()을 호출하십시오.
takeLast() 및 removeFirst()도 참조하십시오 .
QList<T>::value_type QList::takeLast()
목록의 마지막 항목을 제거하고 해당 항목을 반환합니다. 이 함수는 목록이 비어 있지 않다고 가정합니다. 오류가 발생하지 않도록 하려면, 이 함수를 호출하기 전에 isEmpty()를 호출하십시오.
반환 값을 사용하지 않는다면, removeLast()을 사용하는 것이 더 효율적입니다.
takeFirst() 및 removeLast()도 참조하십시오 .
T QList::value(qsizetype i) const
목록의 인덱스 위치 i 에 있는 값을 반환합니다.
인덱스 i 가 범위를 벗어난 경우, 이 함수는 기본 생성된 값을 반환합니다. i 가 범위 내에 있다고 확신하는 경우, 대신 at()을 사용할 수 있으며, 이 함수는 약간 더 빠릅니다.
at() 및 operator[]()도 참조하십시오 .
T QList::value(qsizetype i, QList<T>::parameter_type defaultValue) const
인덱스 ` i `가 범위를 벗어난 경우, 이 함수는 ` defaultValue`를 반환합니다.
이 함수는 오버로드된 함수입니다.
bool QList::operator!=(const QList<T> &other) const
other 가 이 목록과 같지 않으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
두 리스트는 동일한 순서로 동일한 값을 포함하고 있을 때 동일하다고 간주됩니다.
이 함수를 사용하려면 값 유형에 operator==() 의 구현이 있어야 합니다.
operator==()도 참조하십시오 .
QList<T> QList::operator+(QList<T> &&other) &&
QList<T> QList::operator+(const QList<T> &other) &&
QList<T> QList::operator+(QList<T> &&other) const &
QList<T> QList::operator+(const QList<T> &other) const &
이 목록에 포함된 모든 항목 뒤에 other 목록에 포함된 모든 항목이 이어지는 목록을 반환합니다.
operator+=()도 참조하십시오 .
QList<T> &QList::operator+=(const QList<T> &other)
other 목록의 항목들을 이 목록에 추가하고, 이 목록에 대한 참조를 반환합니다.
operator+() 및 append()도 참조하십시오 .
[since 6.0] QList<T> &QList::operator+=(QList<T> &&other)
이것은 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
operator+() 및 append()도 참조하십시오 .
QList<T> &QList::operator+=(QList<T>::parameter_type value)
value 를 목록에 추가합니다.
이 함수는 오버로드된 함수입니다.
append() 및 operator<<()도 참조하십시오 .
QList<T> &QList::operator+=(QList<T>::rvalue_ref value)
이것은 오버로드된 함수입니다.
append() 및 operator<<()도 참조하십시오 .
bool QList::operator<(const QList<T> &other) const
이 리스트가 other보다 어휘적으로 작으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수를 사용하려면 값 유형에 ` operator<()`의 구현이 있어야 합니다.
QList<T> &QList::operator<<(QList<T>::parameter_type value)
value 를 목록에 추가하고, 이 목록에 대한 참조를 반환합니다.
append() 및 operator+=()도 참조하십시오 .
QList<T> &QList::operator<<(const QList<T> &other)
other 를 목록에 추가하고, 목록에 대한 참조를 반환합니다.
[since 6.0] QList<T> &QList::operator<<(QList<T> &&other)
이 함수는 오버로딩된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
QList<T> &QList::operator<<(QList<T>::rvalue_ref value)
이것은 오버로드된 함수입니다.
append() 및 operator+=()도 참조하십시오 .
bool QList::operator<=(const QList<T> &other) const
이 리스트가 other보다 어휘적으로 작거나 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 함수를 사용하려면 값 유형에 operator<() 의 구현이 있어야 합니다.
[implicit] QList<T> &QList::operator=(QList<T> &&other)
other 를 이 QList 인스턴스에 할당합니다.
[implicit] QList<T> &QList::operator=(const QList<T> &other)
other 를 이 목록에 할당하고, 이 목록에 대한 참조를 반환합니다.
QList<T> &QList::operator=(std::initializer_list<T> args)
args 에 포함된 값 집합을 이 QList 인스턴스에 할당합니다.
bool QList::operator==(const QList<T> &other) const
other 가 이 리스트와 같으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
두 리스트는 동일한 값을 동일한 순서로 포함하고 있을 때 동일하다고 간주됩니다.
이 함수를 사용하려면 값 유형에 operator==() 의 구현이 있어야 합니다.
operator!=()도 참조하십시오 .
bool QList::operator>(const QList<T> &other) const
이 리스트가 other보다 어휘적으로 크면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
이 함수를 사용하려면 값 유형에 operator<() 의 구현이 있어야 합니다.
bool QList::operator>=(const QList<T> &other) const
이 리스트가 other보다 어휘적으로 크거나 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수를 사용하려면 값 유형에 operator<() 의 구현이 있어야 합니다.
QList<T>::reference QList::operator[](qsizetype i)
인덱스 위치 i 에 있는 항목을 수정 가능한 참조로 반환합니다.
i i 는 목록에서 유효한 인덱스 위치여야 합니다(즉, 0 <= < ()). size
const가 아닌 연산자를 사용하면 QList 가 심층 복사를 수행할 수 있다는 점에 유의하십시오.
[noexcept] QList<T>::const_reference QList::operator[](qsizetype i) const
(i)과 동일합니다.
이것은 오버로드된 함수입니다.
관련 비회원
[since 6.1] template <typename T, typename AT> qsizetype erase(QList<T> &list, const AT &t)
목록 list 에서 t 과 동일한 모든 요소를 제거합니다. 제거된 요소가 있는 경우, 그 개수를 반환합니다.
참고: QList::removeAll와 달리 , t 는 list 내부의 요소에 대한 참조일 수 없습니다. 이러한 경우가 아니라고 확신할 수 없다면, t 의 복사본을 생성한 후 해당 복사본을 사용하여 이 함수를 호출하십시오.
이 함수는 Qt 6.1에서 도입되었습니다.
QList::removeAll() 및 erase_if도 참조하십시오 .
[since 6.1] template <typename T, typename Predicate> qsizetype erase_if(QList<T> &list, Predicate pred)
pred 조건식이 true를 반환하는 모든 요소를 list 목록에서 제거합니다. 제거된 요소가 있는 경우, 그 개수를 반환합니다.
이 함수는 Qt 6.1에서 도입되었습니다.
erase도 참조하십시오 .
[noexcept(...)] template <typename T> size_t qHash(const QList<T> &key, size_t seed = 0)
seed 를 계산의 시드로 사용하여 key 에 대한 해시 값을 반환합니다.
T 유형은 qHash()에서 지원되어야 합니다.
참고: noexcept(qHashRange(key.cbegin(), key.cend(), seed)) 가 true 일 때이 함수는 noexcept입니다.
template <typename T> QDataStream &operator<<(QDataStream &out, const QList<T> &list)
list 목록을 out 스트림에 기록합니다.
이 함수를 사용하려면 값 유형이 ` operator<<()`을 구현해야 합니다.
QDataStream 연산자의 형식도참조하십시오 .
[since 6.9] auto operator<=>(const QList<T> &lhs, const QList<T> &rhs)
lhs 와 rhs 의 내용을 사전순으로 비교합니다. 적용 가능한 가장 강력한 범주 유형의 결과를 반환합니다. 즉, 유형 T 에 대해 operator<=>() 을 사용할 수 있는 경우 decltype(lhs[0] <=> rhs[0]) 을 반환하고, 그렇지 않은 경우 std::weak_ordering 을 반환합니다.
참고: 이 연산자는 C++20 모드에서만 사용할 수 있으며, 기본 유형 T 이 std::three_way_comparable 개념을 구현하거나 operator<() 를 제공하는 경우에만 사용할 수 있습니다.
이 함수는 Qt 6.9에서 도입되었습니다.
template <typename T> QDataStream &operator>>(QDataStream &in, QList<T> &list)
in 스트림에서 목록을 읽어 list 에 저장합니다.
이 함수를 사용하려면 값 유형이 operator>>() 를 구현해야 합니다.
QDataStream 연산자의 형식도참조하십시오 .
© 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.