Qt프로그램

Container Classes

Barbarian developer 2024. 10. 8.

Container 클래스는 특정 유형의 데이터를 집합 또는 배열 형태로 저장하는데 사용한다.

Qt에서 제공하는 Container는 C++의 STL에서 제공하는 Container를 대체해 사용할 수 있다.


QHash<Key, T>

  • QHash 클래스는 해시 테이블 기반의 Dictionary를 제공한다. 데이터를 저장하는 방식은 Key, Value 가 Pair(쌍)로 저장 된다.
  • Key 값으로 찾고자 하는 데이터를 빠르게 검색 할 수 있는 기능을 제공한다.
  • QHash는 QMap과 매우 비슷한 기능을 제공하지만 내부 알고리즘은 QMap 보다 빠르다.
QHash<QString, int> hash;
hash["one"] = 1;
hash["three"] = 3;
hash["seven"] = 7;
  • QHash에 Key, Value를 쌍으로 저장하기 위한 방법으로 insert( ) 함수를 사용할 수 있다.
  • 그리고 Value 값을 알기 위해 value( ) 멤버 함수를 사용할 수 있다.
hash.insert("twelve", 12);
int num1 = hash["thirteen"];
int num2 = hash.value("thirteen");

 

QList< T>

  • QList<T>는 빠른 인덱스 기반의 액세스가 가능하며 저장된 데이터 삭제도 매우 빠르다.
  • QList는 인덱스 기반의 클래스이며 QLinkedList의 Iterator 기반보다 사용하기 편리하며데이터 저장 시 메모리 할당하는 속도에서 QVector 보다 빠르다.
QList<int> integerList;
QList<QDate> dateList;
QList<QString> list = { "one", "two", "three" };
  • QList는 비교 연산자를 통해 리턴 값을 아래 예와 같이 사용할 수 있다.
if (list[0] == "Bob")
list[0] = "Robert";
  • QList는 at( ) 함수를 이용하면 리스트 상에 저장된 위치를 쉽게 검색 할 수 있다.
for (int i = 0 ; i < list.size() ; ++i)
{
	if (list.at(i) == "Jane")
		cout << "Found Jane at position " << i << endl;
}

 

'Qt프로그램' 카테고리의 다른 글

Qt데이터베이스 모듈  (2) 2024.10.09
Model and View  (1) 2024.10.09
QMainWindow 를 이용한 GUI 구현  (1) 2024.10.08
다이얼로그  (0) 2024.10.08
Qt Designer 를 이용한 GUI 설계  (3) 2024.10.08

댓글