- 博客(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">
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 类 版权所有© 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); 该函数只能获取主屏的分辨率,也就是说如果有多个显示器的话,这个函数只能获取主屏分辨率。 ...
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++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实战-QTreeWidget实现两种行颜色+QListWidget样式
2024-12-08
QT实战-带行号的支持高亮的编辑器实现(2)
2024-12-08
QT实战-qt各种按钮实现
2024-11-29
【IE编程】给指定进程设置使用的内嵌IE的版本
2020-01-07
MFC如何给IP控件设置背景图片
2015-03-24
MFC如何设置IP控件背景色
2015-03-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅