导航

随笔分类 -  C++

摘要:单例模式的写法总的来说分为两类:饿汉式和饱汉式,他们都依赖C++的一个知识点:static的使用。 具体的写法有很多种,首先给出最推荐的写法。这个写法是所谓的饱汉式(即:延时初始化,再使用的时候才去初始化) class Singleton { public: static Singleton& ge 阅读全文

posted @ 2024-04-19 16:45 Hosseini 阅读(308) 评论(0) 推荐(0)

摘要:试了下正则表达式和字符串函数的效率,例如去掉字符串里面的所有的空格: #include <regex> #include <string> #include <iostream> #include <time.h> #include <fstream> using namespace std; in 阅读全文

posted @ 2021-09-09 16:35 Hosseini 阅读(131) 评论(0) 推荐(0)

摘要:1.子线程中建立一个窗口 为了在后面比较这两个函数,先使用win32 windows程序中建立子线程,在子线程中建立一个窗口。 (1)新建一个 win32 windows应用程序 (2)定义子窗口的窗口响应函数 LRESULT CALLBACK SubWndProc(HWND hWnd, UINT 阅读全文

posted @ 2021-08-23 23:07 Hosseini 阅读(1280) 评论(1) 推荐(0)

摘要:一、并行和并发: 并行:多个任务在同一时刻同时执行。 并发:多个任务顺序执行,不是同时。 二、进程和线程: 进程是系统分配资源的最小单位,线程是cpu执行任务的最小单位。 操作系统中,每个进程都有自己的地址空间和一个执行线程,这个线程通常叫做主线程。 对于单核CPU而言,同一时刻只能执行一个线程。每 阅读全文

posted @ 2021-08-19 17:23 Hosseini 阅读(163) 评论(0) 推荐(1)

摘要:工作中需要做一个脚本编辑器的工具,用于代码补全、语法高亮、错误提示等功能,可以直接使用开源控件Scintilla, 网上有一些MFC的多文档使用Scintilla的例子,项目中使用的是对话框,自己实现了一遍,记录一下。 具体过程和上一篇中的win32中使用Scintilla基本一样,主要要注意的是: 阅读全文

posted @ 2021-08-16 10:29 Hosseini 阅读(594) 评论(1) 推荐(0)

摘要:第一步:建立win32程序 第二步:添加头文件,导入lib库 LoadLibrary(_T("SciLexer.dll")) 这样在后面就可以使用类名 Scintilla 来创建窗体。 第三步:创建 Scintilla 窗体的代码 在 BOOL InitInstance(HINSTANCE hIns 阅读全文

posted @ 2021-08-10 14:59 Hosseini 阅读(602) 评论(0) 推荐(0)

摘要:一、size和capicity size是实际长度,capicity是预留空间,请看下面的例子。 (1)str 是个空字符串,它的 size 为0,但它的 capicity 为15 (2)继续往下调试走: str 被赋予了字符串 "123456" ,它的 size 变成了6 ,capicity还是1 阅读全文

posted @ 2021-08-07 08:36 Hosseini 阅读(1042) 评论(0) 推荐(0)

摘要:C++中构建一个对象,有多种方式,例如下面的Person类: class Person { public: Person(){}; ~Person(){}; }; 1.调用构造函数: Person per1 = Person(); 2.调用拷贝构造函数,使用一个已有的对象创建: Person per 阅读全文

posted @ 2021-08-03 13:38 Hosseini 阅读(248) 评论(0) 推荐(0)

摘要:一、拷贝构造函数 当类没有定义拷贝构造函数的时候,编译器会默认提供一个,这个拷贝函数是浅拷贝。 如果该类中含有指针,可能会发生内存泄漏,见下面的例子: class Test { public: int *p; Test(){ p=new int; }; ~Test(){ delete p; }; } 阅读全文

posted @ 2021-08-02 17:04 Hosseini 阅读(1990) 评论(0) 推荐(0)

摘要:在某次项目中,需要遍历装配体,装配体中可能含有嵌套,需要用到一中数据结构,类似于二叉树,但节点数量可能大于2, 如下图: 最终需要处理出来的结果如下: 定义树结构如下来存储每个节点的信息,主要结构如下: 1 class TreeNode 2 { 3 string name; 4 vector<Tre 阅读全文

posted @ 2021-07-28 13:47 Hosseini 阅读(388) 评论(0) 推荐(0)

摘要:一个最简单的windows必须包括两个函数: 1.入口函数:WinMain 2.窗口过程回调函数:WndProc 结构如下: 1 #include <windows.h> 2 3 //窗口过程回调函数 4 LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, W 阅读全文

posted @ 2018-08-05 17:26 Hosseini 阅读(186) 评论(0) 推荐(0)

摘要:读: FileStream fileStr = new FileStream("shaftCofig.txt", FileMode.OpenOrCreate); StreamReader strReader = new StreamReader(fileStr, UnicodeEncoding.Ge 阅读全文

posted @ 2017-11-28 14:30 Hosseini 阅读(156) 评论(0) 推荐(0)