• QMap 的增删改查


    map 是一种数据容器,它提供一种由key 到 value 的映射。
    map 的key 是唯一的, 也是有序的。map 通常由近似平衡的红黑树来实现。
    key 的有序性,使得插入,查找节点比较有效。map 的操作(增删改查),通常就是
    对节点的操作(增删改查)。当然,map 也有创建(new)和销毁(delete)操作。

    QMap 是Qt 实现的一种map, 与c++ stl map 使用方法一致。

    QMap 的增删改查,

    程序简单,就直接上代码了,附上运行结果。

    [cpp] view plain copy
     
    1. #include <QDebug>  
    2.   
    3. void showmap(QString str);  
    4. QMap<int, int> map;  
    5. int main(int argc, char *argv[])  
    6. {  
    7.     (void) argc;  
    8.     (void)argv;  
    9.     QMap<int, int>::iterator it;  
    10. //增加  
    11.     map.insert(1, 100);  
    12.     map.insert(2, 200);  
    13.     map.insert(3, 300);  
    14.     map.insert(4, 400);  
    15.     map.insert(5, 500);  
    16.     map.insert(6, 600);  
    17.   
    18.     showmap("orig");  
    19.     //QMap的Key会自动按升序排列  
    20. //删除  
    21.     it=map.begin()+1;  
    22.     map.erase(it);  
    23.     showmap("delete 2");      
    24. //修改  
    25.     map[5]=1000;  
    26.     showmap("change 5");  
    27. //查询  
    28.     it = map.find(7);  
    29.     if( it != map.end())  
    30.     {  
    31.         //你可以在这里删除  
    32.         qDebug() << "find " << it.key() <<" " << it.value();  
    33.     }  
    34. //it 删除安全吗?  
    35.     for(it=map.begin();it!=map.end();it++)  
    36.     {  
    37.         if((it.key() % 2) ==0) map.erase(it);  
    38.     }  
    39.     showmap("safe erase even key");  
    40.     return 0;  
    41. }  
    42.   
    43. void showmap(QString str)  
    44. {  
    45.     qDebug()<<QString("------ %1 --------").arg(str);  
    46.     QMap<int, int>::iterator it;  
    47.     for( it=map.begin(); it!=map.end(); it++)  
    48.         qDebug() << it.key() <<" " << it.value();  
    49. }  

    ./test2
    "------ orig --------" 
    1      100 
    2      200 
    3      300 
    4      400 
    5      500 
    6      600 
    "------ delete 2 --------" 
    1      100 
    3      300 
    4      400 
    5      500 
    6      600 
    "------ change 5 --------" 
    1      100 
    3      300 
    4      400 
    5      1000 
    6      600 
    "------ safe erase even key --------" 
    1      100 
    3      300 
    5      1000 



    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hejinjing_tom_com/article/details/48103455
  • 相关阅读:
    Maven入门教程
    认识Java Core和Heap Dump
    [Java IO]03_字符流
    Eclipse 实用技巧
    可变和不可变的区分
    什么猴子补丁待补充
    当退出python时,是否释放全部内存
    解释python中的help()和dir()函数
    在python中是如何管理内存的
    解释一下python中的继承
  • 原文地址:https://www.cnblogs.com/findumars/p/8905458.html
Copyright © 2020-2023  润新知