Qt 용기 (QMap/QHash 등) 사용 설명
Qt 의 용기 류 는 두 가지 스타일 의 스 트 리밍 기 를 제공 합 니 다: 자바 풍격 과 STL 풍격
용기 마다 두 가지 가 있다. Java 스타일 의 달력: 읽 기 전용 접근 을 제공 하고 읽 기 전용 접근 을 제공 합 니 다.
용기.
읽 기 전용 달력
읽 기와 쓰기
QList,QQueue
QListIterator
QMutableListIterator
QLinkedList
QLinkedListIterator
QMutableLinkedListIterator
QVector,QStack
QVectorIterator
QMutableVectorIterator
QSet
QSetIterator
QMutableSetIterator
QMap,QMultiMap
QMapIterator
QMutableMapIterator
QHash,QMultiHash
QHashIterator
QMutableHashIterator
STL 스타일 리 셔
STL 스타일 Qt 2.0 제공 을 시작 하 겠 습 니 다.이런 달력 은 호 환 할 수 있다. Qt 화해시키다 STL 의 통용 알고리즘 을 사용 하고 속 도 를 최적화 시 켰 다.... 과 같다 Java 스타일 리 코더 유사, Qt 두 가지 도 제 공 했 어 요. STL 스타일 의 달력: 하 나 는 읽 기 전용 접근 이 고, 하 나 는 읽 기 전용 접근 입 니 다.읽 기 전용 접근 을 가능 한 한 사용 하 는 것 을 추천 합 니 다. 읽 기 전용 접근 기 보다 빠 르 기 때 문 입 니 다.
용기.
읽 기 전용 달력
읽 기와 쓰기
QList,QQueue
QList::const_iterator
QList::iterator
QLinkedList
QLinkedList::const_iterator
QLinkedList::iterator
QVector,QStack
QVector::const_iterator
QVector::iterator
QSet
QSet::const_iterator
QSet::iterator
QMap,QMultiMap
QMap::const_iterator
QMap::iterator
QHash,QMultiHash
QHash::const_iterator
QHash::iter
2. QMap 과 QHash 의 비교 분석
QMap 과 QHash 의 인 터 페 이 스 는 같 습 니 다. 직접 교체 해서 사용 할 수 있 습 니 다. 이들 의 차 이 는 다음 과 같 습 니 다.
(1) QHash 의 검색 속도 가 QMap 보다 현저히 빠르다.
(2) QHash 가 사용 하 는 저장 공간 이 QMap 보다 현저히 많다.
(3), QHash 는 원 소 를 임 의 방식 으로 저장 합 니 다.
(4) QMap 은 Key 순서 로 요 소 를 저장 합 니 다.
(5), QHash 사용자 정의 형식 을 주 키 로 사용 할 경우, QHash 키 형식 은 operator = = () 와 qHash (key) 함 수 를 제공 해 야 합 니 다.
(6) QMap 사용자 정의 형식 을 주 키 로 사용 할 경우 QMap 의 키 형식 은 operator 를 제공 해 야 합 니 다.
3. 인 스 턴 스 사용
#include "mainwindow.h"
#include
#include
#include
#include
#include
struct Student
{
QString name;
int no;
bool operator ,QQueue QListIterator QMutableListIterator
QLinkedList QLinkedListIterator QMutableLinkedListIterator
QVector,QStack QVectorIterator QMutableVectorIterator
QSet QSetIterator QMutableSetIterator
QMap,QMultiMap QMapIterator QMutableMapIterator
QHash,QMultiHash QHashIterator QMutableHashIterator
*/
//----------------end Java
//------QMap
QMap id2NameMap;
id2NameMap.insert(2,"name2");
id2NameMap.insert(1,"name1");
id2NameMap.insert(3,"name3");
qDebug()< it1(id2NameMap);
while (it1.hasNext())
{
it1.next();
if(2 == it1.key())
{
qDebug() << it1.value();
}
}
//
QMutableMapIterator mit1(id2NameMap);
while (mit1.hasNext())
{
mit1.next();
if(2 == mit1.key())
{
mit1.setValue("name2new");
qDebug() << mit1.value();
}
}
qDebug()<,QQueue QList::const_iterator QList::iterator
QLinkedList QLinkedList::const_iterator QLinkedList::iterator
QVector,QStack QVector::const_iterator QVector::iterator
QSet QSet::const_iterator QSet::iterator
QMap,QMultiMap QMap::const_iterator QMap::iterator
QHash,QMultiHash QHash::const_iterator QHash::iter
*/
//------QHash
QHash id2NameHash;
id2NameHash.insert(2,"hashName2");
id2NameHash.insert(1,"hashName1");
id2NameHash.insert(3,"hashName3");
qDebug()<::const_iterator rIt1;
for (rIt1 = id2NameHash.begin(); rIt1 != id2NameHash.end(); ++rIt1)
{
if(2 == rIt1.key())
{
qDebug() << rIt1.value();
}
}
//
QHash::iterator wIt1;
for (wIt1 = id2NameHash.begin(); wIt1 != id2NameHash.end(); ++wIt1)
{
if(2 == wIt1.key())
{
//
*wIt1 = "hashName2new";// *
qDebug() << wIt1.value();
}
else if(3 == wIt1.key())
{
//
id2NameHash.insert(3,"hashName3new");
qDebug() << wIt1.value();
}
}
qDebug()< key2NameMap;
Student tmp;
tmp.no = 2;
tmp.name = "name2";
key2NameMap.insert(tmp,"name2");
tmp.no = 1;
tmp.name = "name1";
key2NameMap.insert(tmp,"name1");
tmp.no = 3;
tmp.name = "name3";
key2NameMap.insert(tmp,"name3");
// qDebug()<::iterator cusIt1 = key2NameMap.find(find);
if(cusIt1 != key2NameMap.end())
{
qDebug()< customHash;
customHash.insert(Employee("name1", QDate(2018,10,21)),"name1");
customHash.insert(Employee("name3", QDate(2018,10,23)),"name3");
customHash.insert(Employee("name2", QDate(2018,10,22)),"name2");
customHash.insert(Employee("name7", QDate(2018,10,27)),"name7");
//
QHash::const_iterator rIt2;
for (rIt2 = customHash.begin(); rIt2 != customHash.end(); ++rIt2)
{
qDebug() << rIt2.key().myName << ":" << rIt2.value();
}
//------end QHash Key
MainWindow w;
w.show();
return a.exec();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간편한 채팅 시스템 - 메시지 전달 서버메시지 전송 서버는 메시지 대기열에서 온 데이터를 받아들여 디코딩, 식별 등을 하고 마지막으로 분류를 나눈다.예를 들어 채팅 시스템은 같은 그룹과 같은 세션의 정보를 같은 그룹 서비스로 전송한다(물론 아직 같은 그룹...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.