社区
Qt
帖子详情
qmap等查找部分key的问题
trumolong
2015-08-16 03:02:03
我现在在做一个类似拼音码表,键值大概是这样的:
a 啊 阿 呵 吖 嗄 腌 锕 錒
aba 阿爸
achang 阿昌
aes 厑
aidao 哀悼
aie 挨饿
aifu 爱抚
现在我是用QMap保存上面数据,但使用find()一个拼音如"ai"时,因为没有"ai"这样key,所有找不出数据,我想实现find部分匹配的功能,输入"ai",可以找出像上面的"aidao","aie","aifu"。
不知道应该如何实现?
...全文
901
1
打赏
收藏
qmap等查找部分key的问题
我现在在做一个类似拼音码表,键值大概是这样的: a 啊 阿 呵 吖 嗄 腌 锕 錒 aba 阿爸 achang 阿昌 aes 厑 aidao 哀悼 aie 挨饿 aifu 爱抚 现在我是用QMap保存上面数据,但使用find()一个拼音如"ai"时,因为没有"ai"这样key,所有找不出数据,我想实现find部分匹配的功能,输入"ai",可以找出像上面的"aidao","aie","aifu"。 不知道应该如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyq5945
2015-08-16
打赏
举报
回复
1
QMap::keys() 返回map的所有key的QList<QString>,自己再针对这个QList<QString>遍历后用QString的Contains或者IndexOf计算下。
map
中字符串与结构体作
key
效率比较
比较两者
查找
效率,得出结论是结构体比字符串组合快~~~
Qt中Q
Map
和QMulti
map
使用
Q
Map
是Qt的通用容器类之一。它存储(键,值) 对,并提供与键相关联的值的快速
查找
。其实就是一个键值对的集合,经常使用的。具体更详细还得看看帮助文档 Q
Map
/QMulti
Map
属于关联式容器,其底层结构是通过二叉树实现,故其
查找
value的效率很快。Q
Map
中的数据都是成对出现的,第一个称为
key
(键),第二个称value(键值)。
朱老师QT系列课程-1.2.QTWidget的控件式开发详解
本课程是《朱老师QT完全学习系列课程 》的第1
部分
第2个课程,主要讲了qt的控件式开发,并且以常用控件label和pushbutton为案例详细讲了所有的属性及其用法,信号与槽机制。同时课程中还讲了QString类,QList、Q
Map
等QT容器类及其三种遍历方法。总之,学完本课程就基本入门了QT的Widget开发。
Qt5开发及实例-CH204.rar,Qt5在Q
Map
中的插入、遍历和修改的代码
实例CH204,在Q
Map
中的插入、遍历和修改。 (a) for(;i.hasNext();)、qDebug()<<" "<
key()<<" "<
Map的遍历输出。在输出Q
Map
的键和值时,调用的函数是不同的。因为在输出键的时候,不需要使迭代点移动到下一个位置,所以调用了Q
Map
Iterator
::
key
();而在输出值的时候调用了Q
Map
Iterator
::next()。 (b) if(mi.findNext("111"))、mi.setValue("010"):首先
查找
某个<键,值>对,然后修改值。Java风格的迭代器没有提供
查找
键的函数。因此,在本例中通过
查找
值的函数QMutable
Map
Iterator
::findNext()来实现
查找
和修改。
福优林@Qt5小白变大牛初级篇word---第4章.pdf
容器类是隐式共享(implicitly)的,可重入(reentrant)的和线程安全的。并且在速度上进行了优化,内存占用少,内联代码扩展少,从而可以产生更小的可执行文件。 为容器遍历提供了两种迭代器(Java-style,STL-style),并且QT提供了foreach关键字,更加方便元素遍历。其中,Java风格的迭代器更容易使用,特别是对于Java工作人员来说,它提供了高层次的函数;然而,STL风格的迭代器会更高效,并且可以和Qt和STL的通用算法结合使用。 Qt中的容器和STL中的类似,也分为序列式容器和关联式容器。 序列式容器有:QList,QLinkedList,QVector,QStack,QQueue。对大
部分
应用程序来说,QList都是一个很好的选择。尽管它在底层被实现为一个array-list,但它为我们提供了非常快速的添加操作,包括在头部添加和在尾部添加。如果你确实需要一个linked-list,可以使用QLinkedList;如果你想确保你的元素占用连续的内存空间,可以使用QVector。而QStack和QQueue是两个提供了LIFO和FIFO语义的方便类。 除了序列式容器,Qt中还提供了关联式容器:Q
Map
,QMulti
Map
,QHash,QMultiHash,QSet。这些容器中存储的都是
key
-value对。其中,"Multi"容器又支持一个
key
可以关联多个value。"Hash"容器通过使用一个hash函数而不是二分搜索提供了更快速的
查找
操作。
Qt
16,213
社区成员
26,593
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章