总结所有遇到的C++常用技巧
2019-02-19 09:31
78 查看
版权声明:转载请注明出处 https://blog.csdn.net/weixin_39540568/article/details/87687918
=================20180708======================
////////////////////C++中分割string字符串 substr方法////////////////////////////////
[code]vector<string> gethalfstringvector(string inputString) { vector<string> outvector; string first = inputString.substr(0, inputString.size() / 2); outvector.push_back(first); string second = inputString.substr(inputString.size()/2,inputString.size()); outvector.push_back(second); return outvector; }
////////////////////C++中去除vector中重复元素方法////////////////////////////////
[code]sort(outvector.begin(), outvector.end()); outvector.erase(unique(outvector.begin(),outvector.end()),outvector.end());
说明:sort完成vector中元素排序,unique将遍历所给区间内的元素,将重复的元素移到末尾,并返回末尾重复元素的地址,最后通过erase进行删除
包含头文件:#include <algorithm>
/////////////////////C++ map的相关操作///////////////////////////////////////////////
[code]if(m.count(key)>0) { return m[key]; } return null;
[code]1 iter = m.find(key); 2 if(iter!=m.end()) 3 { 4 return iter->second; 5 } 6 return null;
m.insert(make_pair(n,m));
其中:make_pair需要包含#include <utility>
/////////////////////////////C++ 中文件操作//////////////////////////////////////////
[code]ifstream filestream; filebuf *pbuf; char *buffer; long size; filestream.open((const char*)m_sSelectFilePath.toStdString().c_str(),ios::binary); if (filestream.is_open()) { pbuf = filestream.rdbuf(); size = pbuf->pubseekoff(0,ios::end,ios::in); //qDebug()<<size; pbuf->pubseekpos(0,ios::in); buffer = new char[size]; pbuf->sgetn(buffer,size); m_bPDSpectraFileData.clear(); for (int loop =0;loop <size;loop++) { m_bPDSpectraFileData.append(buffer[loop]); } delete[] buffer; filestream.close(); } else { QMessageBox::information(NULL,"Waring","所选文件不存在或已被删除,请检查!"); }
/////////////////////////////C 中创建多级目录//////////////////////////////////////////
[code]/** * @brief mkdirs C语言创建多级目录 * @add by yuansong 20181204 * @param muldir */ ST_RET mkdirs(char *muldir) { int i,len; char str[512]; strncpy(str, muldir, 512); len=strlen(str); for( i=0; i<len; i++ ) { if( str[i]=='/' && i != 0) //增加i!=0 考虑的是linux目录构建首字符为/ { str[i] = '\0'; if( access(str,0)!=0 ) { if(0!=mkdir( str, 0777 )) return SD_FAILURE; } str[i]='/'; } } if( len>0 && access(str,0)!=0 ) { if(0 != mkdir( str, 0777 )) return SD_FAILURE; } return SD_SUCCESS; }
相关文章推荐
- 总结一些常用web开发遇到的小问题及技巧。(不定时更新)
- 常用的 Python 爬虫技巧总结
- C++常用的#include头文件总结
- C++常用容器总结
- 近期学习javascript和jquery遇到一些问题的技巧知识总结
- 【总结】常用Shell指令与技巧【2012-02-08 更新】
- C/C++常用预处理指令总结(#ifdef,#ifndef,#endif,#pragma once ...)
- linux中常用技巧总结
- 整理C++常用整数运算的所有细节
- c++中的string常用函数用法总结
- EXCEL常用技巧总结
- jdbc编程中的一些常用的技巧[总结]
- MySQL数据库常用操作技巧总结
- c++中的string常用函数用法总结
- JQuery对表格进行操作的常用技巧总结
- chrome调试常用技巧总结
- 苹果OS X系统常用键盘快捷键和触控板使用技巧总结
- Eclipse常用技巧总结(转)
- Carbide.c++ IDE的常用快捷键和技巧
- C++中的常用数学函数使用总结