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

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

QMap 的增删改查,

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

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

./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

QMap 的增删改查的更多相关文章

  1. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  2. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查

    系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...

  4. 通过Java代码实现对数据库的数据进行操作:增删改查

    在写代码之前,依然是引用mysql数据库的jar包文件:右键项目-构建路径-设置构建路径-库-添加外部JAR 在数据库中我们已经建立好一个表xs :分别有xuehao  xingming    xue ...

  5. Hibernate全套增删改查+分页

    1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...

  6. 使用 Json.Net 对Json文本进行 增删改查

    JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...

  7. yii2 增删改查

    自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attribu ...

  8. Batis-iBatis基本操作(增删改查)

    Batis-iBatis基本操作(增删改查) 时间 2014-04-10 17:55:20  CSDN博客 原文  http://blog.csdn.net/mazhaojuan/article/de ...

  9. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

随机推荐

  1. mac下的词典翻译快捷键

    mac下的词典翻译快捷键:cmd+ctl+d;很方便

  2. the resource is not on the build path of a java project错误

    在eclipse中,使用mavenimport了一个工程,但是在对某一个类进行F3/F4/ctrl+alt+H操作的时候报错:“the resource is not on the build pat ...

  3. Spring中的AOP注解方式和XML方式

    应掌握内容:1. AOP的全名2. AOP的实现原理[静态代理和动态代理]3. 注解方式的配置4. 通知类型     A. 每种通知的特点和使用方式    B. 获取各种数据,方便日后操作5. 执行表 ...

  4. 【习题 7-2 UVA-225】Golygons

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 暴力枚举每次走哪里就好. 用一个二维数组来判重.(数据里,要求不能经过一个点两次->但路径可以相交 然后再用一个flag数组, ...

  5. 移动mm 话费支付接入过程(ane)

    下面记录移动mm 话费支付接入的过程 1.强联网.弱联网差别.sdk是否有区分?用户体验部分由什么不同和差异? 差别在于强联网是网络通道(wifi/gprs/3g),弱联网是走短信通道,用户层面差异在 ...

  6. Android学习笔记之滑动翻页(屏幕切换)

    如何实现手机上手动滑动翻页效果呢?呵呵,在这里我们就给你们介绍一下吧. 一般实现这个特效会用到一个控件:ViewFlipper <1>View切换的控件—ViewFlipper 这个控件是 ...

  7. 关于python的序列和矩阵运算的写法

    #其实下面是这样一个函数,传入的是obj_value,传出的是newobj_value.,, #这里的obj_value实际上是一个序列... for z in obj_value:          ...

  8. app 自动化测试 Appium+Java可以运行的代码

    地址:http://www.cnblogs.com/sunny-sl/p/6520465.html

  9. 洛谷 P1170 兔八哥与猎人

    P1170 兔八哥与猎人 题目描述 兔八哥躲藏在树林旁边的果园里.果园有M × N棵树,组成一个M行N列的矩阵,水平或垂直相邻的两棵树的距离为1.兔八哥在一棵果树下. 猎人背着猎枪走进了果园,他爬上一 ...

  10. ajax获取服务器响应信息

    window.onload = function(){ document.getElementById('btn').onclick = function(){ var req = new XMLHt ...