自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_43148810的博客

学习总结与分享

  • 博客(93)
  • 资源 (15)
  • 收藏
  • 关注

原创 自定义可拓展Variant参数类型

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、参数对外接口的使用 ParamPtr CCirclePtr = ParamManager::createParam(EParamType::CIRCLE); //工厂函数 ParamPtr xPtr; CCirclePtr->getSubParam(center + "." + ptX,

2021-08-12 00:23:34 498

原创 详解C/C++中volatile关键字

https://blog.csdn.net/weixin_44363885/article/details/92838607

2021-08-11 00:03:11 770

原创 基于多线程并发-原子量实现自旋锁

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、多线#include <atomic>class spinlock_mutex{ std::atomic_flag flag;public: spinlock_mutex() : flag(ATOMIC_FLAG_INIT) {} void lock() { wh

2021-08-10 22:54:24 722

原创 C++17 any类(万能容器)详解

any是一种很特殊的容器,它只能容纳一个元素,但这个元素可以是任意的类型,可以是基本数据类型(int,double,char,float…)也可以是复合数据类型(类、结构体),那它究竟有什么用?目前来说我没发现什么太大的作用,如果看官发现什么有用的作用,分享一下=.=操作演示:#include<iostream>#include<any>#include<vector>#include<set>using namespace std;int ma

2021-08-05 00:26:15 4484

原创 C++STL容器总结

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!1.std::stringcopy-on-write2.map中insert已有的key值会失败,但map[key]=val,无该键值对则创建,有则赋值val更多内容请关注个人博客:https://blog.csdn.net/qq_43148810...

2021-07-26 15:44:44 305

原创 vector与string扩容原理说明

https://blog.csdn.net/yangshiziping/article/details/52550291

2021-07-26 14:17:54 504

原创 C++字符串std::string

https://blog.csdn.net/SavitarYu/article/details/81029676https://blog.csdn.net/qq_38877888/article/details/104010047

2021-07-25 23:24:34 1450 1

转载 深入理解C++中std::string的内存布局

一、深入理解 C++ String 在内存中的布局:二、32位程序下内存探讨对于长度小于等于15个字符的字符串:数据会保存到,Data的总计16个字节中,如果string 是零时变量,整个字符串的数据则位于栈上对于数据大于15个字节的字符串:会在堆上分配一块额外的数据区域,并将所有数据填充到堆中,然后将堆指针 赋值到 Data 的第一个 指针位置 (Data前4个字节)原文链接:https://blog.csdn.net/sols000/article/details/103989637

2021-07-25 23:16:45 3612 1

原创 Copy On Write写时拷贝技术

https://blog.51cto.com/u_11142019/1846842

2021-07-25 22:39:33 320

原创 元组tuple

#include <tuple>template<class _Ty> struct _Tuple_val { constexpr _Tuple_val() : _Val() { // default construct } _Ty _Val; }; template<class... _Types>class tuple;template<>class tuple<>{}; // empty tupletem

2021-07-02 21:47:02 241

转载 c++11 Variadic Templates(...)(可变参数列表)

Variadic Templates(…) //视频:2,15-17示例:void print(){} //结束template<typename T,typename... Types>void print(const T& firstArg,const Types&... args){//sizeof...(args);//求这包东西的大小cout<<firstArg<<endl;print(args..);}//调用过程//p

2021-07-02 20:25:26 530

原创 initialize(initialize_list<T>)

initialize(initialize_list) //视频:4-6#include <initializer_list> //头文件templateclass initializer_list{public:_NODISCARD constexpr const _Elem * begin() const noexcept;_NODISCARD constexpr const _Elem * end() const noexcept;_NODISCARD constexp

2021-07-02 00:54:01 358

原创 using关键字作用小结

1)、using-directives(打开命名空间)using namespace std;using std::cout;using Base::date;(Base为类名)2)、type alias:using value_type = _Ty;using allocator_type = _Alloc;using pointer = typename _Mybase::pointer;using const_pointer = typename _Mybase::const_pointe

2021-07-02 00:31:09 239

原创 C++函数重载、重写与重定义

一、重写二、重定义三、重载类型转换模板参数重载

2021-06-30 23:49:01 1238 5

转载 C++ 函数重载 指针类型匹配到bool类型

如有错误的地方欢迎指正,谢谢!如题,今天遇到一个很奇怪的问题,简化示例代码如下:#include <iostream>#include <string> class TestClass{public: void TestFunction(const std::string& test_string) { std::cout << "string function!" << std::endl; } void TestFunc

2021-06-15 19:20:29 849

原创 C++可调用对象

可调用对象接受或者可调用对象的封装bind、function、packaged_task

2021-04-15 23:51:33 1032

原创 基于多线程并发-STL之线程同步-读写锁

多线程之高效的读写锁

2021-03-30 00:45:39 537

原创 SVN版本高阶操作(SVN的REvision和Date设置到输出文件中)

REvision和Date在资源文件中设置到输出文件属性信息中

2021-03-27 00:56:41 1872

原创 C++11右值、右值引用以及move语义

右值、右值引用、move语义(forward、swap)临时对象(即将销毁),不可取地址,只能出现在 operator= 右侧(标准库中有例外,如string、complex 等)。典型的 rvalue:字面常量(如1、2…等)、匿名对象(临时对象)以及函数的返回值等。另外,也可以通过 std::move 显式地将一个左值转换为右值。右值可以绑定到一个const 的左值引用,不能绑定到非常量左值引用拷贝构造:检测自我复制move构造:has a 的优化左值、右值左值引用、右值引用移动构造和移

2021-03-27 00:22:52 345

原创 Logger模块

该模块分享

2021-03-26 01:12:52 670

转载 C++虚函数和虚函数表原理

虚函数的地址存放于虚函数表之中。运行期多态就是通过虚函数和虚函数表实现的。类的对象内部会有指向类内部的虚表地址的指针。通过这个指针调用虚函数。虚函数的调用会被编译器转换为对虚函数表的访问:ptr->f(); //ptr代表this指针,f是虚函数*(ptr->vptr[1])(ptr);12上述代码中,ptr代表一个this指针,ptr指向的vptr是类内部的虚表指针。这个虚表指针会被放在类的最前方(VS2017),1就是虚函数指针在虚函数表中的索引值。在这个索引值表示的虚表的

2021-03-25 11:42:23 150

转载 Effective C++总结

1、视 C++ 为一个语言联邦(C、Object-Oriented C++、Template C++、STL)2、宁可以编译器替换预处理器(尽量以 const、enum、inline 替换 #define)3、尽可能使用 const4、确定对象被使用前已先被初始化(构造时赋值(copy 构造函数)比 default 构造后赋值(copy assignment)效率高)5、了解 C++ 默默编写并调用哪些函数(编译器暗自为 class 创建 default 构造函数、copy 构造函数、copy as

2021-03-08 21:28:18 430 2

原创 基于多线程并发-STL之多线程进阶-async、future、promise

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、async创建异步线程async模板函数的两个版本源码(已去除这里不关注的部分)enum class launch { async = 0x1, deferred = 0x2 };//返回值为std::future类型,?表省略,template<class _Fty,class

2021-03-03 02:30:53 600

原创 基于多线程并发-STL之线程同步-互斥(mutex)

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!锁的理解:提供了以排他方式防止数据结构被并发修改的方法。一、mutex类mutex类源码class _Mutex_base { // base class for all mutex typespublic: _Mutex_base(int _Flags = 0) noexcept; ~_M

2021-02-26 00:13:04 1134 1

原创 基于多线程并发-STL之thread简介

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!1.创建线程对象1)不代表任何执行线程的对象thread() noexcept;2)fn为可调用对象(函数、仿函数(重载()运算符的类),初始化为"class()")、lame表达式)。args为与之同步的一包参数列表【备注】:类的成员函数作为可调用对象时,第一参数必须是该成员函数的地址,第二参

2021-02-10 21:58:26 3351

转载 StarUML类图与C++类之间的关系

如有错误的地方欢迎指正,谢谢!类之间的关系1.generalization 泛化(继承)2.interface realization 虚基类与实现3.aggregation 聚合 has-a的关系4.composition 组合 整体和个体是一种contains-a的关系,个体无整体无法单独存在5.dependency 依赖 Class2的某个函数的返回值、形参、局部变量或对Class1静态方法的调用 6.directed association 单向关

2021-02-10 21:35:26 672

原创 基于多线程并发-STL之thread构造函数浅析

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、标准库Thread内容(函数内部实现内容已摘去)class thread { // class for observing and managing threadspublic: class id; typedef void *native_handle_type; thread() no

2021-02-09 23:14:05 1791

原创 C++运算符重载总结

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!更多内容请关注个人博客:https://blog.csdn.net/qq_43148810...

2020-10-31 00:22:39 4031

原创 函数返回值

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、定义返回T或const T类型对象treturn t;调用一次拷贝构造return T();返回一个临时对象,创建临时对象调用构造,return不调用T类的拷贝构造。二、定义返回T*类型指针treturn &t;return不调用T类的拷贝构造,只是将T类型的指针拷贝了

2020-10-23 00:53:44 686

原创 智能指针之共享指针shared_ptr、弱指针weak_ptr、独占式指针unique_ptr

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!class MyClass{public: MyClass(int m = 0) :M(m){ std::cout << "构造 " << M << std::endl; } MyClass(MyClass& myC) :M(myC.M){

2020-10-07 16:37:37 3153 1

原创 结构型模式Structural Patterns之桥接模式bridge

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、Messager 类设计的场景:1、由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度, 乃至多个纬度的变化。2、利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度。例如:Messager 类的方法有平台实现{PlaySound,DrawShape,Writ

2020-05-25 22:57:54 239 1

原创 结构型模式Structural Patterns之装饰模式decorator

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、3个具体类继承一个抽象类,单一责任原则各自实现抽象基类中的三个方法。#pragma once#include<iostream>//业务操作class Stream {public: virtual void Read(int number)const = 0; virtu

2020-05-15 01:15:37 174

原创 创建型模式Creational Patterns之工厂模式factory method

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、四个具体类继承一个抽象类,各自实现抽象基类中的split()方法、类内(也可放到类外)工厂类实现创建方法。单一责任原则,各自类各自实现自己的方法(split()、CreateSplitter)。#pragma once#include <iostream>//抽象类class I

2020-05-10 00:57:23 227

原创 创建型模式Creational Patterns之单例模式singleton

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、单线程懒汉版本(static对象)class Singleton{private: Singleton() = default; Singleton(const Singleton...

2020-05-09 22:32:00 288

原创 设计模式之六大原则和GOF分类方法

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、设计模式的六大原则1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。...

2020-03-18 23:38:39 471

原创 C++11新特性:auto和decltype

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、auto作用编程时候常常需要把表达式的值赋给变量,需要在声明变量的时候清楚的知道变量是什么类型。然而做到这一点并非那么容易(特别是模板中),有时候根本做不到。为了解决这个问题,C++11新...

2020-02-12 11:28:26 723

原创 C++之assert()断言(宏)

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、assert()简介断言,是宏,而非函数。assert 宏的原型定义在 < assert.h >(C)和< cassert >(C++)中,其作用是如果它的条件返回...

2020-02-11 17:25:19 1055

原创 C++之friend友元(友元函数和友元类)

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、友元在C++中,类具有封装性和隐蔽性,类的数据成员一般都定义为私有成员,成员函数一般都定义为公有的,以此提供类与外界的通讯接口。但是,某些成员函数频繁调用时,由于函数参数的传递、C++严格...

2020-02-11 16:05:14 1571

原创 C++之多态性

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!一、概念1、多态性是面向对象程序设计的重要特性之一。2、多态是指同样的消息被不同类型的对象接收时导致完全不同的行为。3、消息是指对类的成员函数的调用,不同的行为是指不同的实现,也就是调用了...

2020-02-11 00:20:45 3347

原创 C++之类型兼容

@著作权归作者所有:来自CSDN博客作者大胡子的艾娃的原创作品,如需转载,请注明出处https://blog.csdn.net/qq_43148810,否则将追究法律责任。如有错误的地方欢迎指正,谢谢!更多内容请关注个人博客:https://blog.csdn.net/qq_43148810...

2020-02-11 00:16:27 2948

Qt类继承关系以及所属模块关系一览表

qt5中的各种类关系继承图:一个为全局查看的图片版;一个为分模块的高清pdf帮助文档,支持放大缩小功能。 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助。 类继承图的作用:在学习Qt源码的时候常常需要看一个类的父类、它的子类、横向对比它父类的其它派生类的不同等等,如果你连它父类有哪些、子类有哪些、横向对比的派生类有哪些那怎么学习。

2023-03-01

封装TiXml的导出项的(DLL)动态链接库

封装TiXml的导出项的(DLL)动态链接库

2022-05-06

LoggerSourceCode.rar

支持可配置多线高效率的日志模块源码,环境VS2017 需要技术支持请留言

2021-03-26

LoggerComponent.rar

支持多线程可配置的高效率日志模块,demo环境VS2017 需要技术支持请留言

2021-03-26

Variant.rar

自定义可拓展Variant参数类型 需要技术支持请联系留言

2021-08-12

MemoryManager.rar

内存管理,内存池 需要技术支持请留言

2021-08-16

QGraphicsView的UML关系图

QGraphicsView的UML关系图

2022-04-09

C++实现内存泄漏检查

C++实现内存泄漏检查

2022-04-09

C语言知识点思维导图

C语言知识点思维导图,C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

2020-02-04

C++知识点思维导图

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

2020-02-04

Connect.rar

Qt的connect槽函数博文:https://blog.csdn.net/qq_43148810/article/details/121646241 的测试代码

2021-12-04

vld-2.5.1-setup.rar

Visual C++ 内存泄露检测工具(VLD)

2021-10-27

STL知识点思维导图

组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的几个头文件:、、、、、、、、、、、、和。文件中主要介绍了前面八个的使用,并且重点介绍了他们的属性和一些成员函数的使用。

2018-12-18

STL知识点思维导图

组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的几个头文件:、、、、、、、、、、、、和。文件中主要介绍了前面八个的使用,并且重点介绍了他们的属性和一些成员函数的使用。

2020-02-03

空空如也

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

TA关注的人

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