- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 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
2358
原创 进程间通信之文件内存映射
一、什么是内存映射文件内存映射文件,是由一个文件到一块内存的映射。 共享内存(SharedMemory)实际就是文件映射的一种特殊情况。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。二、什么情况下要用内存映射 对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法...
2021-08-23 10:56:01
894
原创 进程间通信之socket
原理解释参考:https://www.jianshu.com/p/066d99da7cbd服务器;#include <iostream>#include<iostream>#include<string>#include<cstring>#include<WS2tcpip.h>#include <WinSock2.h> //一般情况下,这个头文件位于windows.h之前,避免发生某些错误#include
2021-08-20 17:44:38
297
原创 vs2019打包c++项目安装包
一.准备工作1.教程一“Hello World”为例2.安装vs自带的打包插件二.正式开始打包1.右键解决方案->添加->新建项目2.新建一个打包项目Steup Project3.创建完成打包项目,进入如下界面如果不小心关闭了上面界面,可按照如下界面打开4.添加打包文件1)首先获取项目路径2)右键Application Folder—>Add->文件3)输入刚才的地址,...
2021-08-03 16:57:20
1850
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
1214
原创 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
204
原创 内存泄漏检测定位方法
//测试代码#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
转载 C# http服务器实例
转载https://www.cnblogs.com/yijiayi/p/9867502.html//服务器 class Program { static HttpListener httpobj; static void Main(string[] args) { //提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。此类不能被继承。 httpobj = new HttpListener
2021-04-23 10:53:50
976
原创 vs调试技巧之即时窗口
在 Visual Studio 中有一个窗口叫Immediate窗口,中文版本应该叫即时窗口。默认会在你启动调试时在 VS 编辑器中弹出来。你也可以通过Debug | Windows | Immediate或者使用快捷键Ctrl+Alt+I手动把它调出来。这个窗口很实用,尤其是在调试的时候。下面总结几个即时窗口的实用技巧。1. 临时运行C#代码有时候你可能只想知道一句C#代码运行的结果,比如你突然想知道一个空数组调用Sum()方法会不会报错,或者想查看一下Math.PI的值。你不...
2021-01-15 10:53:53
6089
1
原创 VS2017调试技巧总结
一. 断点设置1.条件断点:满足条件才会触发该断点1)条件表达式 :2)命中次数:断点命中多少次之后生效3)筛选器2.操作:将消息打印到输出窗口,比如变量的值,线程号在输出内容可以添加一些预设的值,例如当前的函数,将会输出 命名控件.类.函数 的格式,使用方法如下$ADDRESS当前函数和地址,输出如lindexi.Foo.F1() + 0x7d3abc380000025c比较少使用 $CALLER调用这个方法的方法名,输出如lindexi.Foo.F2当前我进入...
2021-01-15 10:43:27
528
原创 c++智能指针的循环引用
#include <iostream>#include <memory>using namespace std;class B;class A{public:// 为了省去一些步骤这里 数据成员也声明为public // weak_ptr<B> pb; shared_ptr<B> pb; A() { ...
2020-04-29 15:23:16
290
原创 vs2019创建动态库
前提:1.记住生成的动态库是x64还是x86,必须与使用它的平台相对应2. extern "C" __declspec(dllexport) void function();其中extern "C"的作用是告诉编译器将被它修饰的代码按C语言的方式进行编译。__declspec(dllexport)需要在生成动态库的项目中使用,此修饰符告诉编译器和链接器被它修饰的函数或类或变量需要从...
2020-04-21 11:02:23
3203
原创 opencv中有关图像处理的名词
一.滤波:提出图像中不必要的频率段,用于防止或抑制干扰。1.线性滤波:方框滤波,均值滤波(与方框滤波很相似),高斯滤波2.非线性滤波:中值滤波(模糊程度最大),双边滤波(处理后与原图很相似)二.图像深度:表示像素点取值范围的位数。 1bit:说明像素点取值为0和1,也是说图像只能时黑白两种颜色; 24bit:最常见的RGB三通道,24 = 3*8;每个像素取值...
2020-04-19 22:32:11
197
原创 解决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
747
原创 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
320
原创 c#事件event
1.实现要点1)发布器-订阅器模式,发布器是时间的触发者,订阅器是事件的响应者2)通过委托实现3)声明事件必须通过关键字event声明4)1.声明委托 2.声明事件 3. 事件触发 4.事件响应2.举例/***********发布器类***********/public class EventTest{ public delegate void N...
2019-11-07 14:10:24
236
1
原创 C#笔记——委托
1.含义:委托(Delegate)类似于c++的函数指针,用于实现时间和回调方法,派生于System.Delegate类。2.委托的实例化1)委托对象必须使用new关键字来创建2)举例 delegate int DeleFunc(int n); DeleFunc D1 = new DeleFunc(具体实现的函数名);3.委托的多播:委托...
2019-11-04 08:53:39
102
原创 自定义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
198
原创 基于c++11的单例模式
// 单例模式:任意类型,任意参数的的单例//线程安全,c++11保证了static变量是线程安全的//优点:支持任意参数的类型;支持完美转发 template <typename T> class Single { public: template<typename ...Arg> static T* Insatnce(Arg&&.....
2019-06-18 22:05:06
237
原创 使用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
1265
原创 获取路径的操作
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
原创 c++函数参数数量不确定的两种实现方式
1,不同类型,不同数量 #include <cstdarg> //不同类型变参:将可变参数从右至左依次压入栈中,头文件 <cstdarg> //va_list:定义可变参数变量,该变量本质上是一个指针//为va_list变量绑定最后一个固定参数//va_arg(ap, int);返回可变参数//va_end(ap);销毁va_list变量//注意:该方法极...
2019-05-10 17:07:25
8871
原创 获取某文件夹下的所有文件名(包括文件夹名)
#include <io.h>#include <string.h>#include <fstream>/*文件信息读取结构体 _finddata_tstruct _finddata_t { unsigned attrib; //文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。 //文件...
2019-05-10 17:06:55
1814
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人