Qt 容器学习

void fun_container()
{
    /*
     * 1. QList
     */
    qDebug() << "=============QList=============";
    QList<QString> list;
    {
        QString str("This is a test string");
        list << str;
    }
    qDebug()<<list[0]<<" How are you!";

    /*
     * 2. QLinkedList 是一个链式链表,只能使用迭代器访问数据
     */
    qDebug() << "=============QLinkedList=============";
    QLinkedList<QString> qLinkedList;
    qLinkedList.append("xll");
    qLinkedList.append("lulu");
    qLinkedList.append("baobao");

    /*
     * 2.1 QLinkedList Java iterator
     */
    qDebug()<<"2.1 QLinkedList Java iterator";
    QLinkedListIterator <QString> iterator(qLinkedList);
    while(iterator.hasNext())
    {
        qDebug()<< iterator.next();
    }

    /*
     * 2.2 QLinkedList STL iterator
     */
    qDebug()<<"2.2 QLinkedList STL iterator";
    QLinkedList<QString>::Iterator it_qlinkedlist;
    it_qlinkedlist = qLinkedList.begin();
    for (it_qlinkedlist = qLinkedList.begin(); it_qlinkedlist != qLinkedList.end(); it_qlinkedlist++) {
        qDebug() << *it_qlinkedlist;
    }

    /*
     * 3. QVector
     */
    qDebug() << "=============QVector=============";
    QVector <QString> qVector(3);
    qVector.append("xll");
    qVector[1] = "lulu";
    qVector.append("baobao");
    /*
     * 3.1 QVector Java iterator
     */
    qDebug() << "3.1 QVector Java iterator";
    QVectorIterator <QString> it_vector(qVector);
    while (it_vector.hasNext()) {
        qDebug() << it_vector.next();
    }
    /*
     * 3.2 QVector STL iterator
     */
    qDebug() << "3.2 QVector STL iterator";
    QVector<QString>::Iterator it_Qvector;
    for (it_Qvector = qVector.begin(); it_Qvector != qVector.end(); it_Qvector++) {
        qDebug() << *it_Qvector;
    }

    /*
     * 3.3 QVector iterator read
     */
    qDebug() << "3.3 iterator only read";
    QVectorIterator <QString> vector_r(qVector);
    while (vector_r.hasNext()) {
        qDebug() << vector_r.next();
    }
    /*
     * 3.4 QVector iterator read/write
     */
    qDebug() << "3.4 QVector iterator read/write";
    qDebug() << "before";
    QMutableVectorIterator<QString> vector_rw(qVector);
    while(vector_rw.hasNext())
    {
        qDebug() << vector_rw.next();
    }
    vector_rw.toFront();
//    QVector <QString>::iterator it = qVector.begin();
    while(vector_rw.hasNext())
    {
        vector_rw.setValue("qulu");
        vector_rw.next();
    }
    qDebug() << "after";
    vector_rw.toFront();
    while(vector_rw.hasNext())
    {
        qDebug() << vector_rw.next();
    }

    /*
     * 4&5. QMap&QHash
     */
    qDebug()<<"=============QMap=============";
    QMap <QString, QString> map;
    map.insert("beijing", "111");
    map.insert("shanghai", "021");
    map.insert("nanjing", "025");
    /*
     * 4.1 QMap Java iterator
     */
    qDebug() << "4.1 QMap Java iterator";
    QMapIterator<QString, QString> i(map);
    for (;i.hasNext();) {
        i.next();
        qDebug()<<" "<<i.key()<<" "<<i.value();
    }

    QMutableMapIterator <QString, QString> mi(map);
    if(mi.findNext("111"))
    {
        mi.setValue("010");
    }
    QMapIterator<QString, QString> modi(map);
    qDebug()<<" ";
    for (;modi.hasNext();) {
        modi.next();
        qDebug()<<" "<<modi.key()<<" "<<modi.value();
//        qDebug()<<" "<<modi.next().key()<<" "<<modi.next().value();
    }
    /*
     * 4.2 QMap STL iterator
     */
    qDebug()<<"4.2 QMap STL iterator";
    QMap<QString, QString>::Iterator it_QMap;
    for (it_QMap = map.begin(); it_QMap != map.end(); it_QMap++) {
        qDebug()<<" "<<it_QMap.key()<<" "<<it_QMap.value();
    }
}

输出结果:

=============QList=============
"This is a test string"  How are you!
=============QLinkedList=============
2.1 QLinkedList Java iterator
"xll"
"lulu"
"baobao"
2.2 QLinkedList STL iterator
"xll"
"lulu"
"baobao"
=============QVector=============
3.1 QVector Java iterator
""
"lulu"
""
"xll"
"baobao"
3.2 QVector STL iterator
""
"lulu"
""
"xll"
"baobao"
3.3 iterator only read
""
"lulu"
""
"xll"
"baobao"
3.4 QVector iterator read/write
before
""
"lulu"
""
"xll"
"baobao"
after
"qulu"
"qulu"
"qulu"
"qulu"
"baobao"
=============QMap=============
4.1 QMap Java iterator
  "beijing"   "111"
  "nanjing"   "025"
  "shanghai"   "021"

  "beijing"   "010"
  "nanjing"   "025"
  "shanghai"   "021"
4.2 QMap STL iterator
  "beijing"   "010"
  "nanjing"   "025"
  "shanghai"   "021"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值