
c++
_湛卢_
这个作者很懒,什么都没留下…
展开
-
c++ 正则表达式string拆分字符串
1、regex_match :如果整个字符串与表达式匹配,返回true2,regex_search:如果字符串中有子串与表达式匹配,返回true string str(R"(a_@313bb.com)" ); //regex re("([[:w:]]+)@([[:w:]]+\\.com)"); regex re("([[:w:]]+)@([[:w:]]+\\.com)");//[:w:]],字母,数字,下划线 bool matchRes = regex_match(str...原创 2021-08-27 11:01:12 · 2364 阅读 · 0 评论 -
RapidJson基础应用
1.Alt + Enter2.alt + shift + g :打开类的所有子类原创 2021-08-12 20:17:46 · 381 阅读 · 0 评论 -
vs2019打包c++项目安装包
一.准备工作1.教程一“Hello World”为例2.安装vs自带的打包插件二.正式开始打包1.右键解决方案->添加->新建项目2.新建一个打包项目Steup Project3.创建完成打包项目,进入如下界面如果不小心关闭了上面界面,可按照如下界面打开4.添加打包文件1)首先获取项目路径2)右键Application Folder—>Add->文件3)输入刚才的地址,...原创 2021-08-03 16:57:20 · 1853 阅读 · 1 评论 -
c++ STL容器在循环中删除迭代器的处理细节
必要说明:1.关联式容器:map, set2.顺序式容器:vector,list,deque,forward_list , string1.节点式(连续内存);vector,deque , string2,非节点式(非连续内存):map, set,list, forward_list通常有三条规则:1. 对于节点式容器(map, list, set)元素的删除,会导致指向该元素的迭代器失效,其他元素迭代器不受影响, 插入操作不会导致迭代器失效2. 对于非节点式容器(vector,原创 2021-07-22 13:07:46 · 1219 阅读 · 0 评论 -
string的+与+=比较
String & String::operator+= (const String & x){ if (x.m_string == NULL) return *this; char * pOld = m_string; m_string = new char[m_size+x.m_size+1]; strcpy (m_string, pOld); strcat (m_string, x.m_string); del.原创 2021-07-07 10:37:28 · 207 阅读 · 0 评论 -
内存泄漏检测定位方法
//测试代码#include <crtdbg.h> void testMemoryLeak(){ int *a = new int[500]; int *b = new int[500]; //delete a;}int main(int argc, char* argv[]){ _CrtSetBreakAlloc(88); testMemoryLeak(); _CrtDumpMemoryLeaks(); return.原创 2021-05-13 18:22:01 · 262 阅读 · 0 评论 -
VS2017调试技巧总结
一. 断点设置1.条件断点:满足条件才会触发该断点1)条件表达式 :2)命中次数:断点命中多少次之后生效3)筛选器2.操作:将消息打印到输出窗口,比如变量的值,线程号在输出内容可以添加一些预设的值,例如当前的函数,将会输出 命名控件.类.函数 的格式,使用方法如下$ADDRESS当前函数和地址,输出如lindexi.Foo.F1() + 0x7d3abc380000025c比较少使用 $CALLER调用这个方法的方法名,输出如lindexi.Foo.F2当前我进入...原创 2021-01-15 10:43:27 · 531 阅读 · 0 评论 -
解决if..else嵌套过多问题(涉及职责链模式)
1.函数表1)适用于逻辑表达模式相似2)形式 :map<key, std::function<> >3)#include <iostream>#include <map>#include <functional>typedef int (*ifun)(int,int);typedef double (*dfu...原创 2020-04-09 17:05:03 · 749 阅读 · 0 评论 -
c++中string与wstring的转化
#include <iostream>std::wstring StringToWstring(const std::string &str){ size_t len = str.size() * 2;// 预留字节数 setlocale(LC_CTYPE, ""); //必须调用此函数 wchar_t* p = new wchar_t[len];// 申...原创 2020-04-01 18:32:49 · 321 阅读 · 0 评论 -
自定义string类
//所需知识点://strcpy(arg1,arg2)//会把arg2的内容赋值给arg1,直到'\0'为止,复制结束后会在arg1后加一个'\0';//strlen();//返回字符串长度,只会返回‘\0’前字符串的长度,如"123\0qweqr" 返回值为3//std::cin;//遇到空格或回车符就结束输入,遇到回车或eof会读入//std::cout//遇到\0结束class ...原创 2019-07-22 17:40:43 · 200 阅读 · 0 评论 -
使用boost序列化自定义类型
#include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/serialization/string.hpp> #include <boost/serialization/export.hpp> //...原创 2019-05-31 16:08:35 · 1269 阅读 · 0 评论 -
获取路径的操作
1.获取exe文件路径#include <windows.h> TCHAR szPath[MAX_PATH];GetModuleFileName(NULL, szPath, MAX_PATH);//只有第一个参数为NULL,返回当前模块的PathName,否则返回对应dll路径GetFullPathName("",MAX_PATH,szText,NULL);//根据第一个...原创 2019-05-10 17:08:21 · 179 阅读 · 0 评论 -
获取某文件夹下的所有文件名(包括文件夹名)
#include <io.h>#include <string.h>#include <fstream>/*文件信息读取结构体 _finddata_tstruct _finddata_t { unsigned attrib; //文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。 //文件...原创 2019-05-10 17:06:55 · 1817 阅读 · 0 评论 -
c++函数参数数量不确定的两种实现方式
1,不同类型,不同数量 #include <cstdarg> //不同类型变参:将可变参数从右至左依次压入栈中,头文件 <cstdarg> //va_list:定义可变参数变量,该变量本质上是一个指针//为va_list变量绑定最后一个固定参数//va_arg(ap, int);返回可变参数//va_end(ap);销毁va_list变量//注意:该方法极...原创 2019-05-10 17:07:25 · 8878 阅读 · 0 评论