ä»æ¥ã¯ãããããããŠäŸ¿å©ãªæ©èœã«ã€ããŠã話ããããšæããŸãã 圌女ã®ååã¯ã³ã³ããã©ã€ãã©ãªã§ãã ããã¯1ã€ã§ã¯ãªãã䟿å©ãªæ©èœã®ã°ã«ãŒãå šäœã§ãã ãããŠããããã®ç®çã¯ãèŠçŽ ã®ã°ã«ãŒãã®ç·šæãšåŠçã§ãã é¢çœãã§ããã ã§ã¯ã詳ããèŠãŠã¿ãŸããããç«ãžããããã
ãšã³ããªãŒ
ã²ãšã€ã ãèšãããããšããããŸã-ãã®èšäºã¯ããã°ã©ããŒã®åå¿è ã察象ãšããŠããŸãã ç¶ããŸãã
ããã°ã©ãã³ã°ã§æãäžè¬çãªã¿ã¹ã¯ã®1ã€ã¯ãèŠçŽ ã®ã°ã«ãŒãã®åŠçãæŽçããããšã§ãã ããã°ã©ããŒã¯åœŒå¥³ãšäžç·ã«å€ãã®èžæ°ãåãã çµå±ã®ãšããããã¹ãŠãæ£ã«çœ®ãå¿ èŠããããŸã...ããããQtã«ã¯çŽ æŽããããã«ããŒããããŸã-ã³ã³ããã©ã€ãã©ãªã§ãã ãã®ãã«ããŒã¯QtCoreã¢ãžã¥ãŒã«ã«ãããŸãããããã£ãŠãè¿œå ã®ã€ã³ã¯ã«ãŒãã¯å¿ èŠãããŸããã ããã§ã¯ãè¡ããŸãããïŒ
QVectorãã¯ãã«
ãã¯ãã«ã¯ãéåžžã®é åã«éåžžã«ãã䌌ãããŒã¿æ§é ã§ãã ãã ãããã¯ãã«ã¯ã©ã¹ã䜿çšãããšãåçŽãªé åã«æ¯ã¹ãŠããã€ãã®å©ç¹ããããŸãã ããšãã°ããã¯ãã«å ã®èŠçŽ ã®æ°ïŒãµã€ãºïŒã確èªããããåçã«æ¡åŒµãããã§ããŸãã ãã®ã³ã³ããã¯ãä»ã®ã¿ã€ãã®ã³ã³ãããããçµæžçã§ãã é 次ã³ã³ããã®æåŸã«èŠçŽ ãè¿œå ããã«ã¯ã push_backïŒïŒã¡ãœããã䜿çšã§ããŸãã ãã¯ãã«ã®èŠçŽ ã«ã¯ãã€ã³ããã¯ã¹æŒç®å[]ãšå埩åã®äž¡æ¹ã䜿çšããŠã¢ã¯ã»ã¹ã§ããŸãã äŸïŒ
QVector<int> vec; vec.push_back(10); // vec.push_back(20); vec.push_back(30); qDebug() << vec;
æšå®ãããŸã-QVectorïŒ10,20,30ïŒ ã
QByteArrayãã€ãé å
ãã®ã³ã³ããã¯QVectorã«éåžžã«äŒŒãŠããŸãããéãã¯ãã³ãã¬ãŒãã¯ã©ã¹ã§ã¯ãªãããµã€ãºã1ãã€ãã®èŠçŽ ã®ã¿ãæ ŒçŽã§ããããšã§ãã äžéããŒã¿ã¹ãã¬ãŒãžãå¿ èŠãªå Žåã¯ãã¿ã€ãQByteArrayã®ãªããžã§ã¯ãã䜿çšã§ããŸãã é åèŠçŽ ã®æ°ã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã§èšå®ã§ãã[]æŒç®åã䜿çšããŠé åèŠçŽ ã«ã¢ã¯ã»ã¹ã§ããŸãã
QByteArray arr(3); arr[0] = arr[1] = 0xFF; arr[2] = 0x0;
QByteArrayã¯ã©ã¹ã®ãªããžã§ã¯ãã®ããŒã¿ã«å§çž®æäœãšéå€æãé©çšããããšãã§ããŸãã ããã¯ã2ã€ã®ã°ããŒãã«é¢æ°qCompressïŒïŒããã³qUncompressïŒïŒã䜿çšããŠå®çŸãããŸãã ããŒã¿ãå§çž®ããã³è§£åããã ãã§ãïŒ
QByteArray a = "Some text..."; QByteArray aCompressed = qCompress(a); qDebug << qUncompress(aCompressed);
äžéšã®ããã¹ã...ã衚瀺ãããŸãã
QBitArrayãããé å
ãã®ã¯ã©ã¹ã¯ãããïŒãŸãã¯ããŒã« ïŒé åã管çããŸãã æ ŒçŽãããåå€ã¯ãäœåãªã¡ã¢ãªãç¡é§ã«ããããšãªãã1ãããã®ã¿ãåããŸãã ãã®åã¯ã boolåã®å€æ°ãå€æ°æ ŒçŽããããã«äœ¿çšãããŸãã
QBitArray arr(3); arr[0] = arr[1] = true; arr[2] = false;
QListããã³QLinkedListãªã¹ã
ãªã¹ãã¯ãé¢é£ããã¢ã€ãã ã®é åºä»ããããã»ããã§ããããŒã¿æ§é ã§ãã ãã¯ãã«ãšãã¥ãŒã«å¯Ÿãããªã¹ãã®å©ç¹ã¯ããããã®æäœãå®è¡ããããã«æå°éã®ãã€ã³ã¿ãŒã®ã¿ãå€æŽããããããä»»æã®äœçœ®ã§èŠçŽ ãæ¿å ¥ããã³åé€ããæ¹ãå¹ççã§ããããšã§ããå¯äžã®äŸå€ã¯ãªã¹ãã®äžå€®ã«èŠçŽ ãæ¿å ¥ããããšã§ãã ããããæ¬ ç¹ããããŸã-ãªã¹ãã¯ã€ã³ããã¯ã¹ã«ãã£ãŠãªã¹ãã®ç¹å®ã®èŠçŽ ãæ€çŽ¢ããã®ã«ããŸãé©ããŠããªãããããã®ç®çã«ã¯ãã¯ã¿ãŒã䜿çšããã®ãæé©ã§ãã
ãªã¹ãã¯QListãã³ãã¬ãŒãã¯ã©ã¹ã«ãã£ãŠå®è£ ãããŸãã äžè¬çã«ããã®ã¯ã©ã¹ã¯èŠçŽ ãžã®ãã€ã³ã¿ã®é åã§ãã
ãªã¹ããæäœããããã®ç¹å®ã®æäœïŒ
- moveïŒïŒ -èŠçŽ ãããäœçœ®ããå¥ã®äœçœ®ã«ç§»åããŸãã
- removeFirstïŒïŒ -ãªã¹ãã®æåã®èŠçŽ ãåé€ããŸã ã
- removeLastïŒïŒ -ãªã¹ãå ã®æåŸã®ã¢ã€ãã ãåé€ããŸã ã
- swapïŒïŒ -æå®ãããäœçœ®ã§ãªã¹ãã®2ã€ã®èŠçŽ ã亀æããŸãã
- takeAtïŒïŒ -æå®ãããäœçœ®ã®ã¢ã€ãã ãè¿ãããªã¹ãããåé€ããŸãã
- takeFirstïŒïŒ -æåã®èŠçŽ ãè¿ãããªã¹ãããåé€ããŸãã
- takeLastïŒïŒ -æåŸã®ã¢ã€ãã ãè¿ãããªã¹ãããåé€ããŸãã
- toSetïŒïŒ -ãªã¹ãã«å«ãŸããããŒã¿ãå«ãQSetã³ã³ãããè¿ããŸãã
- toStdListïŒïŒ -ãªã¹ãã®èŠçŽ ãå«ãæšæºSTLãªã¹ãstd :: Listãè¿ããŸãã
- toVectorïŒïŒ -ãªã¹ãã«å«ãŸããããŒã¿ãå«ãQVectorãã¯ãã«ãè¿ããŸãã
èŠçŽ ã®å€ãå€æŽããªãå Žåãå¹çäžã®çç±ããã[]æŒç®åã®äœ¿çšã¯æšå¥šãããŸããã 代ããã«atïŒïŒã¡ãœããã䜿çšããŸããããã¯ãèŠçŽ ãžã®å®æ°åç §ãè¿ãããã§ãã
æãäžè¬çãªæäœã®1ã€ã¯ããªã¹ããèµ°æ»ããŠãåãªã¹ãé ç®ã®å€ãé çªã«ååŸããããšã§ãã äŸïŒ
QList<int> list; list << 10 << 20 << 30; QValueList<int>::iterator it = list.begin(); // while (it != list.end()) { qDebug() << "Element:" << *it; ++it; }
ã³ã³ãœãŒã«ã«ã¯ä»¥äžã衚瀺ãããŸãã
èŠçŽ ïŒ10
èŠçŽ ïŒ20
èŠçŽ ïŒ30
倧ããªãªã¹ãã䜿çšããå ŽåããèŠçŽ ãæ¿å ¥ããå¿ èŠãããå Žåã¯ãäºéã«ãªã³ã¯ãããQLinkedListãªã¹ãã䜿çšããæ¹ãå¹ççã§ãã ãã®ã³ã³ãããŒã¯QListããã倧é£ãã§ãããæ¿å ¥ãŸãã¯åé€æäœã¯ãåé€ãŸãã¯æ¿å ¥ãããèŠçŽ ã®äœçœ®ã«é¢ä¿ãªãã4ã€ã®ãã€ã³ã¿ãŒãåå®çŸ©ããããšã«ãªããŸãã
qstackã®ã¹ã¿ãã¯
ã¹ã¿ãã¯ã¯ãLast In First Out-last comeãfirst goã®ååã«åºã¥ããŠæ©èœããããŒã¿æ§é ãå®è£ ããŸãã ã€ãŸããä»ã®ãã¹ãŠã®èŠçŽ ã®åŸã«æ¿å ¥ãããèŠçŽ ãæåã«ã¹ã¿ãã¯ããåé€ãããŸãã
QStackã¯ã©ã¹ã¯ãã¹ã¿ãã¯æ§é ã®å®è£ ã§ãã ãã®ã¯ã©ã¹ã¯QVectorããç¶æ¿ãããŸã ã ã¹ã¿ãã¯ã«ã¢ã€ãã ã眮ãããã»ã¹ã¯ãéåžžpushãšåŒã°ããããããäžçªäžã®ã¢ã€ãã ããããããããšã¯ poping ãšåŒã°ããŸãã ããã·ã¥æäœããšã«ã¹ã¿ãã¯ãµã€ãºã1ãã€å¢å ããããã·ã¥æäœããšã«1ãã€æžå°ããŸãããããã®æäœã§ã¯ã ããã·ã¥ïŒïŒããã³ãããïŒïŒé¢æ°ãQStackã¯ã©ã¹ã§å®çŸ©ãããŸãã topïŒïŒã¡ãœããã¯ããããèŠçŽ ãžã®ãªã³ã¯ãè¿ããŸãã ã¹ã¿ãã¯ã®äœ¿çšäŸïŒ
QStack<QString> stk; stk.push("Era"); // stk.push("Corvus Corax"); stk.push("Gathering"); while (!stk.empty()) { qDebug() << "Element:" << stk.pop(); }
ã³ã³ãœãŒã«ã«ã¯æ¬¡ã®ããã«ãªããŸãã
èŠçŽ ïŒãåéã
èŠçŽ ïŒãCorvus Coraxã
èŠçŽ ïŒãæ代ã
QQueueãã¥ãŒ
ãã¥ãŒã¯ãååã«åŸã£ãŠåäœããããŒã¿æ§é ãå®è£ ããŸã-å çé ã§ãã QListããç¶æ¿ããQQueueã¯ã©ã¹ã«ãã¥ãŒãå®è£ ããŸãã ã
次ã®äŸã¯ããã¥ãŒã®äœ¿çšäŸã瀺ããŠããŸãã
QQueue<QString> que; que.enqueue("Era"); que.enqueue("Corvus Corax"); que.enqueue("Gathering"); while (!que.empty()) { qDebug() << "Element:" << que.dequeue(); }
ã³ã³ãœãŒã«ã«ã¯æ¬¡ã®ããã«ãªããŸãã
èŠçŽ ïŒãæ代ã
èŠçŽ ïŒãCorvus Coraxã
èŠçŽ ïŒãåéã
èŸæžQMapãQMultiMap
èŸæžã¯ãååãšããŠãæ¥åžžç掻ã§äœ¿çšãããæ®éã®èŸæžã«äŒŒãŠããŸãã ããŒå€ã§ã€ã³ããã¯ã¹ä»ããããåãã¿ã€ãã®ã¢ã€ãã ãä¿åããŸãã èŸæžã®å©ç¹ã¯ãç¹å®ã®ããŒã«é¢é£ä»ããããå€ããã°ããååŸã§ããããšã§ãã éè€ãèš±å¯ããè€æ°ã®èŸæžãé€ããããŒã¯äžæã§ãªããã°ãªããŸããã
ãã®ã¿ã€ãã®ã³ã³ããã§ã¯ãèŠçŽ ãèŠã€ããããã®ããŒãšãšãã«å ¥åããŸããããŒã¯ä»»æã®ã¿ã€ãã®å€ã«ããããšãã§ããŸãã QMapãã£ã¯ã·ã§ããªã®å ŽåãåãããŒãæã€2ã€ã®ç°ãªãèŠçŽ ãå ¥åãããªãããã«ããå¿ èŠããããŸãããããã®èŠçŽ ã®1ã€ãæœåºã§ããªãããã§ãã åããŒã¯äžæã§ããå¿ èŠããããŸãã
QMapãªããžã§ã¯ããäœæãããšãã¯ããã®ãµã€ãºãã³ã³ã¹ãã©ã¯ã¿ãŒã«æž¡ãå¿ èŠããããŸãã ãã®ãµã€ãºã¯ãä»ã®ã³ã³ããã¯ã©ã¹ã§éåžžè¡ãããŠããããã«ãèŠçŽ ã®æ倧æ°ãå¶éãããµã€ãºã§ã¯ãããŸããããäœçœ®ã®æ°ãè¡šããŸãã äœçœ®ã®æ°ã¯ãæ ŒçŽããããšäºæ³ãããèŠçŽ ã®æ°ããã倧ããããå¿ èŠããããŸããããããªããšãèŸæžå ã®èŠçŽ ã®æ€çŽ¢ãååã«å¹æçã«å®è¡ãããŸããã ãã®å ŽåãèŠçŽ ã®é 眮ããã䟿å©ã«ãªãããããã®å€ã¯çŽ æ°ã®ã«ããŽãªã«å±ããââããšãæãŸããã§ãã
ããã€ãã®æ¹æ³ïŒ
- iowerBoundïŒïŒ -æå®ãããããŒãæã€æåã®èŠçŽ ã«æ»ããŸãã
- toStdMapïŒïŒ -èŸæžã®èŠçŽ ãæã€STLèŸæžãè¿ããŸãã
- upperBoundïŒïŒ -æå®ãããããŒãæã€æåŸã®èŠçŽ ã«æ»ããŸãã
èŸæžé ç®ã«ã¢ã¯ã»ã¹ããæãäžè¬çãªæ¹æ³ã®1ã€ã¯ã[]æŒç®åã§ããŒã䜿çšããããšã§ãã ãã ããããŒãšå€ã¯ã€ãã¬ãŒã¿ã¡ãœããkeyïŒïŒãšvalueïŒïŒãä»ããŠååŸã§ãããããããã¯ãªããŠãããŸããŸãããããšãã°ã
QMap<QString,QString> mapPhonebook; mapPhonebook["Piggy"] = "+380 93 785 11 11"; mapPhonebook["Kermit"] = "+7 85 123 65 56"; mapPhonebook["Gonzo"] = "+49 73 631 32 21"; QMap<QString,QString>::iterator it = mapPhonebook.begin(); for(;it != mapPhonebook.end(); ++it) { qDebug() << "Name:" << it.key() << "Phone:" << it.value(); }
ã³ã³ãœãŒã«ã«ã¯æ¬¡ã®ããã«ãªããŸãã
ååïŒãã¡æ®ãé»è©±ïŒ+49 73 631 32 21
ååïŒã«ãŒãããé»è©±ïŒ+7 85123 65562 21
ååïŒè²¯éç®±é»è©±ïŒ+380 93 785 11 11
QHashããã³QMultiHashããã·ã¥
ããã·ã¥ã®æ©èœã¯QMapãšéåžžã«äŒŒãŠããŸãããå¯äžã®éãã¯ãããŒã§ãœãŒããã代ããã«ããã®ã¯ã©ã¹ãããã·ã¥ããŒãã«ã䜿çšããããšã§ãã ããã«ããã QMapãããã¯ããã«é«éã«ããŒå€ãæ€çŽ¢ã§ããŸãã
QMapãšåæ§ã«ãèŠçŽ ãååšããªãããŒãæå®ãããšèŠçŽ ãäœæããããããã€ã³ããã¯ã¹æŒç®å[]ã䜿çšããå Žåã¯æ³šæãå¿ èŠã§ãã ãããã£ãŠãã³ã³ããã®containsïŒïŒã¡ãœããã䜿çšããŠãããŒã«ãã€ã³ããããèŠçŽ ã®ååšãåžžã«ç¢ºèªããããšãéèŠã§ãã
ç¬èªã®ã¯ã©ã¹ã®ãªããžã§ã¯ããQHashã«é 眮ããå Žåã¯ãã¯ã©ã¹ã«æ¯èŒæŒç®å==ãšç¹æ®é¢æ°qHashïŒïŒãå®è£ ããå¿ èŠããããŸãã æ¯èŒæŒç®åã®å®è£ äŸã¯æ¬¡ã®ãšããã§ãã
inline bool operator==(const MyClass& mc1, const MyClass& mc2) { return (mc1.firstName() == mc2.firstName() && mc1.secondName() == mc2.secondName() ); }
qHashïŒïŒé¢æ°ã¯ãããã·ã¥å ã®åã¢ã€ãã ã«å¯ŸããŠäžæã§ãªããã°ãªããªãæ°å€ãè¿ãå¿ èŠããããŸãã äŸïŒ
inline uint qHash(const MyClass& mc) { return qHash(mc.firstName()) ^ qHash(mc.secondName()); }
QMultiHashã¯ã©ã¹ã¯QHashããç¶æ¿ãããŸã ã åãããŒã§å€ãé 眮ããããšãã§ããäžè¬ã«QMultiMapã«äŒŒãŠããŸããã芪ã¯ã©ã¹ã®è©³çŽ°ãèæ ®ããŸãã
å€ãã®QSet
ãã€ãã®æ°åŠè ã²ãªã«ã¯ã»ã«ã³ããŒã«ãèšã£ãããã«ããå€ãã¯å€ããç§ãã¡ã¯ç²Ÿç¥çã«ã¯1ã€ãšããŠæå³ããŸããã ããã¯ãTulipã®ã³ã³ããã¹ãã§ã¯ãèŠçŽ ãäœããã®é åºã§æžã蟌ã¿ãå€ãéåžžã«è¿ éã«è¡šç€ºãããŠããªã³ãã€ã³ã¿ãŒã»ã¯ã·ã§ã³ãå·®ãªã©ã®ã»ããã®ç¹æ§ã§ããæäœãå®è¡ããæ©èœãæäŸããQSetã³ã³ãããŒã«ãããŸããã åææ¡ä»¶ã¯ãããŒãç°ãªãå¿ èŠãããããšã§ãã QSetã³ã³ããã¯ãããŒã¿ããã°ããååŸããããã®é åºãªããªã¹ããšããŠäœ¿çšã§ããŸãã
ã»ããã§å®è¡ã§ããæäœïŒçµåã亀差ãå·®ã
2ã€ã®ã»ãããäœæãããããã«èŠçŽ ãæžã蟌ã¿ãŸãã
QSet<QString> set1; QSet<QString> set2; set1 << "Lorem" << "Ipsum" << "Dolor"; set2 << "Sit" << "Amet" << "Lorem";
ããã2ã€ã®ã»ãããçµåããæäœãå®è¡ããã»ããã®èŠçŽ ãå€æŽãããªãããã«ããããã«ãäžéã®setResultã»ãããå°å ¥ããŸãã
QSet<QString> setResult = set1; setResult.unite(set2); qDebug() << " = " << setResult.toList();
以äžãç»é¢ã«è¡šç€ºãããŸãã
Union =ïŒãLoremãããIpsumãããDolorãããSitãããAmetãïŒ
åæ§ã«ã 亀差ïŒïŒãšå·®ïŒ æžç®ïŒïŒïŒãå®è¡ãããŸãã
ãŸãšã
ä»æ¥ãèªè ã¯ããããçš®é¡ã®Qtã³ã³ãããæäœããæ¹æ³ãåŠãã§ããã¯ãã§ãã ä»æ¥ãç§ã¯å šäœåã®ã»ãã®äžéšã話ããã ã¢ã«ãŽãªãºã ãæ£èŠè¡šçŸãQVariantãªã©ãããã«å ã«ãããŸãã å€åç§ã¯ãããã«ã€ããŠæžããŸãïŒã
æåŠ
- 1.ããã¯ã¹ã·ã¥ãªãŒã Qt 4.5-ãããã§ãã·ã§ãã«C ++ããã°ã©ãã³ã°
- 2. Qtãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ã
PSãã®èšäºã¯ãåå¿è ããã°ã©ããŒã®ãã¬ãŒãã³ã°ãç®çãšããŠããŸãã