QMap QHash有近乎相同的功能.很多资料里面介绍过他们之间的区别了.但是都没有说明在使用中如何选择他们. 实际上他们除了存储顺序的差别外,只有key操作的区别. 哈希算法是将包含较多信息的“key”转换成包含信息较少的“key的key”.通过“key的key”查找key,在通过key找到value. 所以选择上应该考虑如下几点 1:对于例如QString这种复杂的比较,哈希算法比map快很多. 2:整数型作为key,不是巨大量,实际上哈希也快不了多少. 3:哈希表需要额外消耗内存,若条目很…
前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功... 后来还跑到论坛上问人了,丢脸丢大了... 事先说明:以下这个例子是错误的 #include <QtCore> struct node { int cx, cy; bool operator < (const node &b) const { return cx < b.cx; } }; int main(int argc, char *argv[]) { QCoreApplicati…
map在STL中的定义 template <class Key, class T, class Compare = less<Key>, class Alloc = alloc> 第一个参数Key是关键字类型 第二个参数T是值类型 第三个参数Compare是比较函数(仿函数) 第四个参数是内存配置对象 map内部存储机制实际是以红黑树为基础,红黑树在插入节点时,必须依照大小比对之后在一个合适的位置上执行插入动作.所以作为关键字,起码必须有“<”这个比较操作符 qhash是用散…
阿里面试中有一道题是这样的: 请用JavaScript语言实现 sort 排序函数,要求:sort([5, 100, 6, 3, -12]) // 返回 [-12, 3, 5, 6, 100],如果你有多种解法,请阐述各种解法的思路及优缺点.(仅需用代码实现一种解法,其它解法用文字阐述思路即可) 那我们就来看一下各种解法的思路以及优缺点~ 简单排序 1冒泡法: 原理:对存放原始数据的数组,按从前往后的方向进行多次扫描,每次扫描称为一趟.当发现相邻两个数据的次序与要求的不同时,即将两个数据进行互换…
1. QMap深度解析 (1)QMap是一个以升序键顺序存储键值对的数据结构 ①QMap原型为 class QMap<K, T>模板 ②QMap中的键值对根据Key进行了排序 ③QMap中的Key类型必须重载operator< .(即“小于”操作符) (2)QMap使用示例1 QMap<QString, int> map; //注意插入时是无序的 map.insert(); map.insert(); map.insert(); ; i<; i++) { //通过键取值…
1..是否可以在static环境中访问非static变量? 答:static变量在Java中是属于类的,它在所有的实例中的值是一样的.当类被Java虚拟机载入的时候,会对static变量进行初始化.如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上. 2.Java集合类框架的基本接口有哪些? 答:Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类.Java集合类里面最基本的接口有: Collection:代表一组…
www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架是最常被问到的Java面试问题,要理解Java技术强大特性就有必要掌握集合框架.这里有一些实用问题,常在核心Java面试中问到. 1.什么是Java集合API Java集合框架API是用来表示和操作集合的统一框架,它包含接口.实现类.以及帮助程序员完成一些编程的算法.简言之,API在上层完成以下几件…
Jeff Atwood倾情推荐——程序员必读之书 英文版:<Code Complete 2>中文版:<代码大全(第二版)>作者:Steve McConnell译者:金戈  汤凌  陈硕  张菲出版社:电子工业出版社出版日期:2007 年8月Jeff Atwood的推荐:Steve McConnell的这本书是软件开发领域里的<烹饪的乐趣>.如果你对这本书感兴趣,说明你热爱你现在的工作,你对你正在做的事情是认真的,并且你想不断地提升自己.Steve在这本书里指出,普通程序…
      除了提供诸如同步控制,线程池等基本工具外,为了提高开发人员的效率,JDK已经为我们准备了一大批好用的并发容器,这些容器都是线程安全的,可以大大减少开发工作量.你可以在里面找到链表.HashMap.队列等.你可以在里面找到链表.HashMap.队列等.   JDK提供的这些容器大部分在java.util.con-current包中.    •ConcurrentHashMap:这是一个高效的并发HashMap.你可以理解为一个线程安全的HashMap.    •CopyOnWriteA…
Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. 1. 整体框架 Java容器类库一共有两种主要类型:Collection和Map.层次结构如下: 蓝色椭圆框为接口类(不可实例化),黑色矩形框为实现类或子类. java.util.Collection [I] +--java.util.List [I]    +--java.util.ArrayList [C]    +--java.util.LinkedList [C…