QMap 的增删改查
map 是一种数据容器,它提供一种由key 到 value 的映射。
map 的key 是唯一的, 也是有序的。map 通常由近似平衡的红黑树来实现。
key 的有序性,使得插入,查找节点比较有效。map 的操作(增删改查),通常就是
对节点的操作(增删改查)。当然,map 也有创建(new)和销毁(delete)操作。
QMap 是Qt 实现的一种map, 与c++ stl map 使用方法一致。
QMap 的增删改查,
程序简单,就直接上代码了,附上运行结果。
- #include <QDebug>
- void showmap(QString str);
- QMap<int, int> map;
- int main(int argc, char *argv[])
- {
- (void) argc;
- (void)argv;
- QMap<int, int>::iterator it;
- //增加
- map.insert(1, 100);
- map.insert(2, 200);
- map.insert(3, 300);
- map.insert(4, 400);
- map.insert(5, 500);
- map.insert(6, 600);
- showmap("orig");
- //QMap的Key会自动按升序排列
- //删除
- it=map.begin()+1;
- map.erase(it);
- showmap("delete 2");
- //修改
- map[5]=1000;
- showmap("change 5");
- //查询
- it = map.find(7);
- if( it != map.end())
- {
- //你可以在这里删除
- qDebug() << "find " << it.key() <<"\t" << it.value();
- }
- //it 删除安全吗?
- for(it=map.begin();it!=map.end();it++)
- {
- if((it.key() % 2) ==0) map.erase(it);
- }
- showmap("safe erase even key");
- return 0;
- }
- void showmap(QString str)
- {
- qDebug()<<QString("------ %1 --------").arg(str);
- QMap<int, int>::iterator it;
- for( it=map.begin(); it!=map.end(); it++)
- qDebug() << it.key() <<"\t" << it.value();
- }
./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
QMap 的增删改查的更多相关文章
- Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示
Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...
- ASP.NET从零开始学习EF的增删改查
ASP.NET从零开始学习EF的增删改查 最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查
系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...
- 通过Java代码实现对数据库的数据进行操作:增删改查
在写代码之前,依然是引用mysql数据库的jar包文件:右键项目-构建路径-设置构建路径-库-添加外部JAR 在数据库中我们已经建立好一个表xs :分别有xuehao xingming xue ...
- Hibernate全套增删改查+分页
1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...
- 使用 Json.Net 对Json文本进行 增删改查
JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...
- yii2 增删改查
自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attribu ...
- Batis-iBatis基本操作(增删改查)
Batis-iBatis基本操作(增删改查) 时间 2014-04-10 17:55:20 CSDN博客 原文 http://blog.csdn.net/mazhaojuan/article/de ...
- JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)
前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...
随机推荐
- tracepath---追踪并显示报文到达目的主机所经过的路由信息。
tracepath命令用来追踪并显示报文到达目的主机所经过的路由信息. 语法 tracepath(参数) 参数 目的主机:指定追踪路由信息的目的主机: 端口:指定使用的UDP端口号.
- [React Native] Animate the Scale of a React Native Button using Animated.spring
In this lesson we will use Animated.spring and TouchableWithoutFeedback to animate the scale of a bu ...
- HDOJ 5357 Easy Sequence DP
a[i] 表示以i字符开头的合法序列有多少个 b[i] 表示以i字符结尾的合法序列有多少个 up表示上一层的'('的相应位置 mt[i] i匹配的相应位置 c[i] 包括i字符的合法序列个数 c[i ...
- 用for和while循环求e的值[e=1+1/1!+1/2!+1/3!+1/4!+1/5!+...+1/n!]
/*编敲代码,依据下面公式求e的值. 要求用两种方法计算: 1)for循环.计算前50项 2)while循环,直至最后一项的值小于10-4 e=1+1/1!+1/2!+1/3!+1/4!+1/5!+. ...
- 44.delete用法
声明+delete:函数禁止使用.可以使一个类禁止释放
- 如何修复和检测Windows系统漏洞
本文为<如何给系统打补丁(知识篇)>一文实战文章. 本文出自 "李晨光原创技术博客" 博客,谢绝转载!
- JavaFx lineChart real-time Monitor
JavaFx lineChart real-time Monitor about memory public class EffectTest extends Application { Stac ...
- php数组函数(分类基本数组函数,栈函数,队列)
php数组函数(分类基本数组函数,栈函数,队列函数) 一.总结 1.常用数组函数 函数 描述 array() 创建数组. array_combine() 通过合并两个数组来创建一个新数组. array ...
- 8.spring-boot配置log4j
转自:https://www.cnblogs.com/qixing/p/7763582.html <dependency> <groupId>org.springframewo ...
- JS 数字格式千分位相互转换
/** * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要保留的小数位(Number) * @param isThousa ...