关联容器的应用(一)
来源:互联网 发布:plc200仿真软件 编辑:程序博客网 时间:2024/06/05 22:52
主要是用的是QMap的简单应用
QT关联容器根据key -> value映射, 元素根据key值大小排序,与插入顺序无关。
下面的例子是对一个文件进行排序。
QMap的Key会自动按升序排列。
首先,我们需要获得相应路径下的所有文件的列表:
相关的代码如下:
void Widget::on_pushButton_2_clicked(){ QString path=QFileDialog::getExistingDirectory(NULL, tr("get filepath"),"D:\\",QFileDialog::ShowDirsOnly); QDir dir(path); if(!dir.exists()) {return;}//文件不存,则返回false m_fileList = dir.entryInfoList(QDir::Dirs|QDir::Files |QDir::Readable|QDir::Writable |QDir::Hidden|QDir::NoDotAndDotDot ,QDir::Name);}
将所有的获取路径下的所有的文件给导入到m_fileList(QFileInfoList)中,然后再通过下面的代码来进行排序打印输出:
void Widget::on_pushButton_clicked(){ if(m_fileInfo->size() <= 0) { return; } m_qlist.clear(); m_qmap.clear(); foreach (QFileInfo pfileinfo, m_fileList) { QString filename = pfileinfo.fileName(); // 获取文件名 m_qlist.push_back(filename); QString qstrintomap = filename; int nindex = qstrintomap.indexOf("("); qstrintomap.remove(0,nindex+1); nindex = qstrintomap.indexOf(")"); int nlen = qstrintomap.size(); qstrintomap = qstrintomap.remove(nindex,nlen - nindex); int nkey = qstrintomap.toInt(); m_qmap.insert(nkey,filename); } for(int i = 0;i < m_qmap.size();++i) { qDebug() << m_qmap[i]; }}文件夹中的文件:
打印输出的结果:
有兴趣的可以自己多测试下!!!
代码地址: 代码下载
阅读全文
0 0
- 关联容器的应用(一)
- 关联容器(一)
- 关联容器(一):set
- Part3:关联容器(一)
- 关联容器基础(一)
- C++之关联容器的学习(一)
- C++中的关联容器(一)
- c++ Map关联容器学习(一)
- c++标准库关联容器----(map、set等)的应用总结
- 关于关联容器set的一些应用总结
- 关联容器的表面
- 关联容器的学习心得
- 关联容器的操作
- 文本查询程序(关联容器使用)一
- 三 关联式容器(一)set和multiset
- C++容器(顺序容器、关联容器)
- C++ Primer Chapter 10 关联容器之容器的综合应用:文本查询程序
- C++ Primer 关联容器--容器的综合应用:文本查询程序
- tcc-transaction分布式TCC型事务框架搭建与使用记录
- tensorflow分布式运行时组件剖析
- 使用ES5实现私有非单例属性
- maven命令安装第三方jar包到本地仓库和私服
- Spring Boot学习(七)之Web应用使用jdbctemplate多数据源配置
- 关联容器的应用(一)
- Socket 编程
- linux系统常见的压缩命令
- 设计模式(四)——代理模式
- 分布式网站架构学习资源
- 分布式事务的典型处理方式:2PC、TCC、异步确保和最大努力型
- Spring boot + MyBatis 查询返回Map时设置值为null的字段也在结果集中
- 编程第四课 char类型
- Git使用详细教程