常用C/C++函数(文件夹遍历,Map根据Value排序)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了常用C/C++函数(文件夹遍历,Map根据Value排序),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2003字,纯文字阅读大概需要3分钟。
内容图文
![常用C/C++函数(文件夹遍历,Map根据Value排序)](/upload/InfoBanner/zyjiaocheng/787/aeba6627c04847e0adac9497eb95a91a.jpg)
1,遍历文件夹下的所有文件
#ifndef FILELIST_H #define FILELIST_H #include <string> #include <vector> #include <fstream> #include <windows.h> #include <iostream> using namespace std; string filetype = ".pgm"; //遍历文件夹下的文件名列表(包括嵌套文件夹) void get_filelist(char *foldname,vector<string> &filelist) { HANDLE hFind; WIN32_FIND_DATA fileData; string line; char fn[MAX_PATH]; char tmpfn[MAX_PATH]; strcpy(fn,foldname); //需要对文件夹名的字符串进行处理 if(fn[strlen(fn) -1] != '\\' ) { strcat(fn, "\\"); } //留意顺序,此时fn已加入"\\" strcpy(tmpfn,fn); //不加*会出错! strcat(fn, "*"); hFind = FindFirstFile(fn, &fileData); FindNextFile(hFind, &fileData); while(FindNextFile(hFind, &fileData)){ //如果扫描到的当前为文件夹 if (fileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if(fileData.cFileName[0]!='.') { char szFile[MAX_PATH]; strcpy(szFile,tmpfn); strcat(szFile,fileData.cFileName); get_filelist(szFile,filelist); } } //扫描到文件 else { line = (string)tmpfn; line+=fileData.cFileName; if (line.find(filetype,0)!=string::npos) { filelist.push_back(line); } else continue; } //cout<<line<<endl; } } #endif
如果出现“该转换要求 reinterpret_cast、C 样式转换或函数类型转换”错误,解决办法:
进入项目的属性设置的“配置属性”里的“常规”项,在“字符集”那里把“使用Unicode字符集”改成“使用多字节字符集”。
2,C++中,根据Map的Value值来排序
#include <map> #include <vector> #include <algorithm> typedef pair<string,double> PAIR; //Define outside int cmp(const PAIR& x, const PAIR& y) { return x.second < y.second; } void main() {
map<string,double> imgdis; //待排序对象,根据double值排序
vector<PAIR> vecpair;
for (map<string,double>::iterator curr = imgdis.begin(); curr != imgdis.end(); ++curr) { vecpair.push_back(make_pair(curr->first, curr->second)); } sort(vecpair.begin(), vecpair.end(), cmp); //输出排序后的键值对
for(int i = 0 ;i<vecpair.size();i++) { printf("%d",i+1); //图省事 cout<<" "<<vecpair[i].first<<" "<<vecpair[i].second<<endl; } }
转载于:https://www.cnblogs.com/idaidai/archive/2012/12/03/functions_common_used.html
内容总结
以上是互联网集市为您收集整理的常用C/C++函数(文件夹遍历,Map根据Value排序)全部内容,希望文章能够帮你解决常用C/C++函数(文件夹遍历,Map根据Value排序)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。