Cpper
C/C++高级工程师 Android高级软件工程师 IT集成工程师 音频工程师 熟悉c,c++,java,c#,py,js,asp等多种语言 程序猿
本文涉及QT中的容器对象系列
一容器
QVector类似stl中的vector插入尾部数据速度很快
基本例子如下:
QVector<double> vect(3);
vect[0] = 1.0;
vect[1] = 0.540302;
vect[2] = -0.416147;
这样也可以
QVector<double> vect;
vect.append(1.0);
vect.append(0.540302);
vect.append(-0.416147);
另外也可以通过流
vect << 1.0 << 0.540302 << -0.416147;
2.QLinkedList没有提供[]操纵
随机访问速度很慢
3.QList<T>序列容器是一种数组链表它具有前2者的大部分操作支持随机访问
在容器头部尾部插入数据很迅速
4.QStringList是QList<QString>的子类提供以下操作
排序,过滤,正则表达式处理等
5.QStack<T> 提供push,pop,top等操作
6.Queue<T> QT的队列模板
7.QMap<T,V>
基本操作如下:
QMap<QString, int> map;
map.insert("eins", 1);
map.insert("sieben", 7);
map.insert("dreiundzwanzig", 23);
当然也可以这样插入数据
map["eins"] = 1;
map["sieben"] = 7;
map["dreiundzwanzig"] = 23;
但是这样做有一个问题那就是会生成空值
为了不出现这样的结果可以使用成员函数value()来代替[]来获取数据,如果对于键不存在则返回默认的对象值
8.QHash<T,V> 使用散列存储键值对
二通用算法
需要说明的是QT中的容器是stl风格的,这意味着可以使用Stl中的算法。
当然在QT库中QtAlgorithm文件包含了基本的算法模板
主要的函数有
qFind-查找给定元素在容器中的位置类似std::find
qBinaryFind - 类似qFind 需要查找元素有序排列
qFill-类似std::fill 使用给定元素填充容器
qCopy,qSort..
qDeleteAll-函数对容器中的每个元素做删除处理

基本的容器和算法就这么多了
其实熟悉stl的话学习这个上手很快的


posted on 2011-03-15 20:05 ccsdu2009 阅读(1728) 评论(0)  编辑 收藏 引用 所属分类: QT编程

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理