自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kevin的博客

以己为灯,以戒为师,以苦为师【大智慧:业余时间可以弥补先天不足,好记性不如烂笔头】

  • 博客(126)
  • 资源 (9)
  • 问答 (2)
  • 收藏
  • 关注

原创 【STL】vetor+list+map原理--简单笔记

vector原理:[动态数组,连续内存,用3个指针控制,一个指向开始,一个指向结束,一个指向已用的结尾首先分配固定内存,用于存放数据;当新加入数据超过内存大小时,vector会重新分配一块更大的内存,然后把之前的内容拷贝到新的vector种,然后把旧的删除,所以有时会出现迭代器失效,就是因为旧的删除了,解决办法是给迭代器重新赋值,即指向新的vector说明:vector扩容大小与编译器有关,不同编译器不一样,但肯定是变大的]list原理:[链表,内存是不连续的链表,包含[头+..

2021-05-26 16:36:58 352

转载 转载:30张图带你彻底理解红黑树(+新增理解笔记)

转载:30张图带你彻底理解红黑树写在前面当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力!人类之伟大呀! —— 学红黑树有感。终于,在学习了几天的红黑树相关的知识后,我想把我所学所想和所感分享给大家。红黑树是一种比较难的数据结构,要完全搞懂非常耗时耗力,红黑树怎么自平衡?什么时候需要左旋或右旋?插入和删除破坏了树的平衡后怎么处理?等等一连串的问题在学习前困扰着我。如果你在学习过程中也会存在我的疑问,那么本文对你会有帮助,本文帮助你全面、彻底地理解红黑树!本文将通过图文的方式讲解红

2021-05-26 14:13:44 174

转载 转载:【C++】C++中的迭代器

转载:【C++】C++中的迭代器 【C++】C++中的迭代器 </h1> <div class="clear"></div> <div class="postBody"> <div id="cnblogs_post_description" style="display: none"&gt

2021-04-28 19:36:56 676

原创 【std::vector】 删除多个值总结

//注意问题:删除后,索引会前移,替代原来删除的位置,数组大小减小1 std::vector<int> vecData{1,2,3,4,5,6,7,8,9}; for (auto value : vecData) { std::cout << value << " "; } std::cout << std::endl; std::vector<int> vecDelData{ ...

2021-04-26 16:37:05 533

转载 转载:[10分钟速览 C++20 新增特性]

转载:10分钟速览 C++20 新增特性10分钟速览 C++20 新增特性新增标识符(Identifies)模块(Modules)优点创建模块引用模块import 头文件Ranges例子协程(Coroutines)什么是协程例子(VC++)Concepts如何定义使用例子Lambda 表达式的更新[=, this] 需要显式捕获this变量模板形式的 Lambda 表达式Lambda 表达式打包捕获(Pack Expansion)常量表达式(constexpr) 的更新constexpr string &

2021-04-12 16:46:50 710

转载 转载:C++17新特性

转载:C++17新特性今天向亲爱的读者们介绍下C++17的新特性,现在基本上各个编译器对C++17都已经提供完备的支持,建议大家编程中尝试使用下C++17,可以一定程度上简化代码编写,提高编程效率。主要新特性如下:构造函数模板推导结构化绑定if-switch语句初始化内联变量折叠表达式constexpr lambda表达式namespace嵌套__has_include预处理表达式在lambda表达式用*this捕获对象副本新增Attribute字符串转换std::variantstd::optional

2021-04-01 18:15:14 646

转载 转载:C++14新特性的所有知识点全在这儿啦!

转载:C++14新特性的所有知识点全在这儿啦!C++14新特性的所有知识点全在这儿啦! 函数返回值类型推导C++14对函数返回类型推导规则做了优化,先看一段代码:#include <iostream>using namespace std;auto func(int i) {return i;}int main() {cout << func(4) << endl;return 0;}使用C++11编译:~/test$ g++ test.cc

2021-03-23 10:59:13 262

转载 转载:求第k小的数、第k大的数、中位数的三种算法(nth_element()、快速选择算法、直接排序法)

转载:https://blog.csdn.net/qq_41708792/article/details/103130479?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-14.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-14.control

2021-03-22 13:59:48 882

原创 【数据结构与算法】笔记--快速选择算法

快速选择算法:【#include <iostream>#include "windows.h"#include <vector>#include <algorithm>void Swap(vector <int>& arr, int i, int j){ int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;}int Partition(vector <i...

2021-03-22 11:23:29 142

转载 转载:算法的时间与空间复杂度(一看就懂)

转载:https://zhuanlan.zhihu.com/p/50479555算法的时间与空间复杂度(一看就懂)算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间维度:是指执行当前算法需要占用多少内存空间,我们

2021-03-19 13:48:16 204

转载 转载:c++11/14之std::shared_ptr作为引用参数,普通参数

转载:https://blog.csdn.net/janeqi1987/article/details/102820048 1. c++中使用std::shared_ptr类型做为构造函数参数,并使用std::move()初始化成员变量。 使用std::shared_ptr类型作为形参,shared_ptr会被复制,使用std::move()之后,形参对象就没有内容了。 #include <iostrea

2021-03-13 15:45:16 675

转载 转载:CString工作原理和常见问题分析

转载:https://blog.csdn.net/nickwu1220/article/details/6938202 关于Cstring 类 版权所有&copy; Stevencao@benq.com 2003-11-6 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们

2021-03-09 16:41:26 429

原创 【c++11】sort排序

sort是qsort的升级版,如果能用sort尽量用sort,都是快速排序头文件:#include <algorithm>std::sort(vecData.begin(), vecData.end(), [](tag_Chart t1, tag_Chart t2) {return t1.date < t2.date; });---------------例子:#include <vector>#include <algorithm>s.

2021-03-01 17:11:51 821

原创 【c++11】std::bind使用

1.绑定全局函数[#include <iostream>#include <functional>typedef std::function<void(int, int)> callback;void fun(int n1, int n2){ OutputDebugString(L"fun");}使用:std::function<void(int, int)> ss1 = std::bind(fun, std::placeho...

2021-03-01 16:54:00 314

原创 【c++11】std::funciton使用

使用方法:就是当作函数指针或回调函数使用,起到统一标准的作用,可接收参数包括:std::function可接收"全局函数、static成员函数、成员函数、lamda表达式"std::function作全局变量std::function作成员变量1.接收函数【(1)接收全局函数[#include <functional>typedef std::function<void(int, int)> callback;void fun(int n1, int n.

2021-03-01 16:53:19 1013

转载 转载:Windows扩展屏开发总结

Windows扩展屏开发总结一、多屏设置在设置-系统-可以点击显示器1和2,可以进行单独设置;“使之成为我的主显示器”可以设置当前显示器是主屏;主屏的选择会决定整个虚拟屏幕坐标起点的位置。多显示器可以设置扩展,复制和独立展示。(独立显示是只在显示屏1 或者2上显示)扩展  - 设计,办公等场景。对于应用的意义则在于我们可以在两个或多个显示器上,分别打开不同的窗口,比如在一个显示器上显示网页,另一个显...

2021-03-01 16:18:58 970

转载 转载:获取屏幕的分辨率(多屏幕或者单屏幕)

我们在做项目的时候,往往会有想要获取屏幕的分辨率的需求。现在我们就来总结一下如何获取屏幕分辨率,不管是单屏还是多屏。  1、RECT deskRect;    GetWindowRect(GetDesktopWindow(),&deskRect);    该函数只能获取主屏的分辨率,也就是说如果有多个显示器的话,这个函数只能获取主屏分辨率。&nbsp...

2021-03-01 15:24:25 1964

转载 【GDI+】GDI+学习及代码总结之------画刷Brush

画刷Brush GDI+中定义了五种画刷类型,他们都派生于Brush类,他们分别是: 注意:画刷与画笔不同,画刷只是用来填充区域,所以,画刷无宽度、长度可言。 单色画刷SolidBrush 一、构造函数 [cpp]  view plain copy So...

2020-12-22 16:43:29 1340

原创 QT实战-常见功能实现-精进篇

Qt版本:5.9.1-----0.如何设置所有按钮全局统一样式,如soui那样的?如取消所有按钮默认样式[//全局设置,取消按钮默认样式 this->setStyleSheet("QPushButton \ {\ border: none;\ background-color: transparent;\ ...

2020-12-20 19:17:25 2012

原创 CWnd或CDialog-Create或CreateEx详解(包含窗口类型怎么填+动态创建窗口和控件例子)

前言:静态创建窗口比较简单,都是资源文件,拖动控件,或支持xml配置的那么如何动态创建窗口和控件呢?【本质:都是利用CreateWindowEx,CreateWindow下面几点知道就差不多了:[1.CreateWindowEx动态创建窗口CreateWindow动态创建控件2.注册窗口类使用方法3.窗口类型填什么(窗口和子窗口)4.动态创建的窗口或控件响应5.动态创建的窗口是非阻塞的,所以外边需要加消息循环]】1动态创建窗口: --CreateWindowE..

2020-12-19 17:37:00 4013 1

原创 【MFC/win32实战】 继承CWnd实现的一个tip显示问题收集

继承CWnd实现的一个tip显示后在按下alt+tab后跑到前面不消失了怎么办?一般是因为创建窗口是WS_EX_TOPMOST导致的,解决办法是换成WS_EX_TOOLWINDOW--------------[看创建窗口时填入的窗口的风格bool CWndInfo::CreateInfoWindow(HWND hWnd){ m_hWndParent = hWnd; CString strWndClass = AfxRegisterWndClass(CS_VREDRAW | ...

2020-12-19 17:33:57 373 2

原创 MFC SetWindowLong支持功能

原型:WINUSERAPILONGWINAPISetWindowLongA( _In_ HWND hWnd, _In_ int nIndex, _In_ LONG dwNewLong);WINUSERAPILONGWINAPISetWindowLongW( _In_ HWND hWnd, _In_ int nIndex, _In_ LONG dwNewLong);#ifdef UNICODE#define SetWindowLong S...

2020-12-19 17:31:58 663 2

原创 CWnd与CDialog-自绘控件时继承哪个

1.CDialog,CStatic,CButton都是继承于CWnd,所以自绘控件 --要么继承于已有的控件,要么继承于Cwnd完全自绘,不要继承于CDialog自绘自己的窗口 --继承于Cwnd完全自绘,,不要继承于CDialog----2.如果想设计一个自己的CDialog对话框样式怎么办?最佳方式:资源创建一个对话框,然后利用类向导自动创建类,然后在OnPaint中改就好了不用追求不用资源纯代码创建CDialog的,太麻烦,还容易出问题,不便于维护...

2020-12-19 17:29:43 259 1

原创 CWnd与CDialog-使用成员对象和成员指针创建窗口区别

CWnd与CDialog-使用成员对象和成员指针创建窗口区别?1.成员对象与构造函数有关,不支持时就无法使用成员对象,如class cdlg1111 : public CDialog{public:cdlg1111(CWnd* pParent );}cdlg1111 m_dlg;//就会报错,因为会调用构造函数成员指针就不会,指针只在new的时候调用构造函数cdlg1111 *m_pdlg;//就会报错m_pdlg = new cdlg1111(this);//调用构造2.触发函.

2020-12-19 17:29:07 263 1

原创 CWnd与CDialog-区别

1.创建方式CWnd --通用窗口,使用方式,new出来,创建,显示[CString strWndClass = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW, AfxGetApp()->LoadStandardCursor(IDC_ARROW), (HBRUSH)(COLOR_3DFACE + 1));CMydlg *m_pDlg = new CMydlg();m_pDlg.Create(strWndClass, NULL, WS_POPU..

2020-12-19 17:27:57 1066 1

原创 CWnd与CDialog-MFC窗口与SOUI、Duilib窗口

1.MFCCWnd窗口是所有窗口基类,CDialog与其他所有控件,都是继承于CWnd,然后绘制出来的所以MFC所有窗口都是真窗口具体布局就是:主窗口是真窗口,然后里面各个控件都是真窗口,主窗口创建好后,子控件在onsize里调整好位置就行了鼠标移到主窗口的控件上时,按下、移动等消息都会被控件接收,主窗口就响应不到了----------2.SOUI、DUIlib只有主窗口和对话框窗口是真窗口,里面的所有控件都是绘制上去的,不是真窗口所以到主窗口的这些控件上时,按下、移动等各种.

2020-12-19 17:27:23 747 1

原创 CWnd与CDialog-DoModal与ShowWindow区别

1.使用Domodal()时:(1)Domodal()会阻塞调用函数,所以使用局部变量和成员变量都可以;(2)Domodal()前不能调用Create,否则崩溃,不知道为啥使用ShowWindow时:(1)只能使用成员变量方式ShowWindow不会阻塞调用函数,调用完就结束了,局部变量,调用完直接销毁了,窗口就闪一下就没了,局部指针,调用完函数返回了,内存没有手动释放;(2)ShowWindow前必须调用Create保证窗口已经创建了----------------例子:[CD.

2020-12-19 17:26:47 1765 1

原创 CWnd或CDialog-如何写一个与可以使用同样方式创建的窗口

1.如何写一个与CWnd用同样方式创建的窗口?class CMyWnd : public CWnd{}----2.如何写一个与CDialog用同样方式创建的窗口?最佳方式:资源添加个窗口,然后利用类向导自动生成类,然后根据需要在上面改就好了(不用追求纯代码动态创建的,太麻烦了,容易出问题)【例子1: --有资源文件,自动生成的类[头文件:class cdlg1111 : public CDialog{ DECLARE_DYNAMIC(cdlg1111)publ...

2020-12-19 17:25:54 375 1

转载 【C++实例总结】负数取模运算

转载:https://www.cnblogs.com/widerg/p/7208041.htmlhttps://blog.csdn.net/u013094181/article/details/218634911.取模运算(1)全都是正数,全都是负数情况7%2=1,(-7)%(-2)=-1没有争论,比较好理解(2)一正一负情况如a%b,第一种情况...

2020-03-02 12:01:14 8694

原创 【c++11】基本类型与字符串转换

1.基础类型转为字符串api:std::to_string Defined in header<string> std::stringto_string(intvalue); (1) (since C++11) std::stringto_string(longvalue); ...

2020-01-09 19:05:50 534

转载 C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)

转载:添加链接描述 一、s...

2020-01-09 18:02:03 2700

原创 【c++11】 lamda表达式

1.标准样式[](CString itUrl)->bool { }例子:不带参数:auto fun_helloworld = []()->void{ std::cout << "hello world" << std::endl;};fun_helloworld();带一个参数:auto fun...

2020-01-09 17:47:50 495

原创 【c++实例总结】 时间time_t转为字符串输出2(std::put_time与std::get_time)

1.基础介绍头文件:#include <iomanip> //io 操作,manipulator是操作的意思,英文全称的缩写api:(1)std::put_timec++源码: // TEMPLATE STRUCT _Timeobjtemplate<class _Elem, class _Ptr> struct _Timeobj {...

2020-01-09 15:51:42 8451

转载 C++ time_t与string的互相转换

时间格式:"YYYY-MM-DD 11:11:11"1.string转time_ttime_t StringToDatetime(std::string str){...

2020-01-08 19:29:47 6254

原创 【c++实例总结】 时间time_t转为字符串输出(strftime)

1.time_t转为字符串输出api:localtime_s --将time_t转为tm结构体strftime --将tm格式化输出代码如下:#include <iostream>//#include <chrono>#include <ctime>int main(){ /*std:...

2020-01-08 19:23:21 7671 1

原创 【IE编程】给指定进程设置使用的内嵌IE的版本

1.进程如果使用内嵌IE(IWebBrowser2)时,如何给当前进程设置IE的版本号为最新的呢?第1步:添加头文件browser_feature_control_helper.h#ifndef BASE_BROWSER_FEATURE_CONTORL_HELPER_H_#define BASE_BROWSER_FEATURE_CONTORL_HELPER_H_#include &...

2020-01-07 15:32:30 699

原创 【IE编程】获取IE版本

1如何获取当前IE版本?方法:从注册表获取代码如下:std::vector<std::string> StringSplit(const std::string &text, char sep) { std::vector<std::string> tokens; std::size_t start = 0, end = 0; ...

2020-01-07 14:59:07 271

原创 【IE编程】 IWebBrowser2子线程调用崩溃

1.c++调用js函数方法:#include <Mshtml.h>bool CBrowserFunc::ExecJsFun(IWebBrowser2 *pWebBrowser2, const std::wstring& lpJsFun, const std::wstring &json_param){ //程序开始处com是否已经初始化 if (NULL...

2020-01-03 17:23:23 551

原创 【c++实例总结】 帧率与码率

1.名词解释fps --帧率,每秒钟传输的帧数,帧率越大越流畅,一般流畅的最低帧率是30kbps --千比特率,码率,1kByte/s=8kbit/s(一般简写为1kB/s=8kb/s)【小知识:字节:B,即sizeof计算的值比特:b,就是位,B是字节即sizeof计算的值1B=8b,即1字节=8比特kbps:首先要了解的是,ps指的是/s,即每秒。在这里需要...

2019-12-30 14:15:52 1692 2

原创 【c++实例总结】 位运算代替bool数组

问题:开发有时会用到多个标志位,那么通常如何实现呢?方式1:普通方式,即使用bool数组方式2:二进制位方式,参考mfc等可看到一种通过使用二进制的每一位来代替bool数组的方式,比较实用实现方式:#define MY_FLAG (1<<0) //二进制--00000001,16进制--0x00000001#define MY_FLA...

2019-12-20 14:04:12 1082

QT实战-基于QWidget实现的异形tip窗口

基于QWidget实现的异形tip窗口

2025-02-20

QT实战-qt菜单样式实现2:不同文字颜色实现+设置菜单指定高度,超出显示滚动条实现

QT实战-qt菜单样式实现2:不同文字颜色实现+设置菜单指定高度,超出显示滚动条实现

2025-02-18

QT实战-QTreeWidget实现两种行颜色+QListWidget样式

QTreeWidget实现两种行颜色、点击打开父节点以及设置父子节点之间距离,同时附带介绍了QListWidget样式

2024-12-08

QT实战-带行号的支持高亮的编辑器实现(2)

第二种实现带行号的支持高亮的编辑器的方式,基于QTextEdit实现的,支持自定义边框,背景,颜色,以及滚动条样式,支持输入变色,复制文本到里面变色,支持替换,是一个纯专业项目使用的编辑器

2024-12-08

QT实战-带行号的支持高亮的编辑器实现(1)

基于QPlainTextEdit实现的,带有行号的,支持高亮的编辑器实现

2024-12-07

QT实战-qt菜单样式实现、自定义带滚动条的菜单实现

QT实战-qt菜单样式实现、自定义带滚动条的菜单实现

2024-12-03

QT实战-qt各种按钮实现

介绍qt一些按钮的实现,包括正常按钮;带有下拉箭头的按钮的各种实现;按钮和箭头两部分分别响应;图片和按钮大小一致;图片和按钮大小不一致的处理;文字和图片位置的按钮

2024-11-29

MFC 动态创建窗口与对话框

基于VS2017,使用MFC,使用CreateWindow,CreateWindowEx动态创建窗口与对话框

2020-12-19

MFC 绘制半透明文字并保存为背景透明图片

使用vs2010开发工具,MFC开发,生成半透明文字,并保存为背景透明图片

2018-05-23

获取windows当前登录的用户名

获取windows当前登录的用户名

2018-03-15

MFC 检查ppt是否正在播放

vs2010开发,使用MFC用于检测ppt是否正在播放,支持微软powerpoint以及wps的ppt播放

2018-04-24

MFC 检测笔记本电池电量

基于VS2010,使用MFC,定时检测笔记本电池电量,低电量时提醒

2018-06-26

MFC 实现自绘右键菜单

vs2010开发 点击托盘图标弹窗 菜单项支持选择与取消选择

2018-05-23

QT实战-常见功能实现-精进篇

qt入门,各种控件界面

2020-12-20

【IE编程】给指定进程设置使用的内嵌IE的版本

win32/c++, 使用vs2015开发,给使用内嵌IE的进程设置IE版本为最新版本,通过此设置,保证使用的IE是最新的,有利于兼容性问题的解决

2020-01-07

MFC 实现轮流写2个文件

使用vs2010,用mfc实现轮流写2个文件,每个超过500k会清空并写另一个文件,支持下次启动时从上个文件写

2018-04-24

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除