自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_45715405的博客

每天进步一点点

  • 博客(499)
  • 资源 (14)
  • 收藏
  • 关注

原创 c语言链表(插入,删除,更改,查找)

初始化链表int main( ) { int i; struct link // 定义链表的类型 { int data; // 数据区 struct link *next; // 地址区用来存放下一个元素的地址 }; struct link *p = (struct link *) malloc(sizeof(struct link)); // 创建一个头结点 就是指向链表的第一个元素 struct link *te

2021-05-12 23:31:04 5270 16

原创 什么是 std::integral_constant?它解决了什么问题?

std::integral_constant是C++11引入的一个极其基础且关键的模板类,它为编译期常量的表达和传递提供了统一的类型封装机制。理解它,不仅能帮你快速掌握C++11模板元编程的核心思想,还能让你在设计高效、灵活的泛型代码时游刃有余。

2025-05-05 22:03:40 177

原创 什么是std::conditional?它解决了什么问题?

std::conditional是C++11标准库中极具实用价值的类型选择模板,它让我们能够在编译期根据一个布尔条件,选择不同的类型。理解并掌握它,不仅能让你写出更灵活、更安全的泛型代码,。)还能深入体会C++模板元编程的设计哲学和底层机制。

2025-05-05 21:55:58 291

原创 什么是 std::enable_if?为什么它重要?

在C++11时代,模板编程迎来了一个划时代的工具——std::enable_if,它与SFINAE(Substitution Failure Is Not An Error,替换失败非错误)机制结合,极大地丰富了模板的表达能力和灵活性。

2025-05-05 21:39:10 184

原创 一、什么是decltype?它和模板参数推导有什么关系?

decltype,字面意思是“声明类型”,它的作用是根据一个表达式,推导出该表达式的准确类型,而且不会对表达式求值。这和auto不太一样,auto是根据初始化表达式推导变量类型,而decltype是根据任意表达式推导类型。在模板编程中,函数返回类型往往依赖于模板参数,但传统C++写法很难准确推导返回类型。decltype• 它可以精确推导表达式的类型,包括引用、const等修饰符。• 结合尾返回类型(trailing return type)语法,允许在模板函数定义时动态推导返回类型。

2025-05-05 20:24:22 155

原创 什么是std::decay?为什么它重要?

C++11引入的std::decay是一个看似不起眼但极为关键的类型萃取工具,它帮助我们在模板编程中“统一”各种复杂类型,尤其是函数参数的类型表现。

2025-05-05 20:20:46 266

原创 1. std::result_of是什么?为什么它出现?

C++11中的std::result_of是一个专门用来推导函数调用返回类型的模板工具,它解决了在模板编程中“我不知道某个函数对象调用后返回什么类型”的难题。

2025-05-05 20:13:44 246

原创 什么是外联模板(extern template)?

简单来说,C++模板是一种“代码生成器”,编译器在遇到具体类型时才会生成对应的代码,这叫做模板实例化。问题是:

2025-05-05 19:56:20 816

原创 一、C++11随机数库的设计哲学:引擎与分布分离

C++11引入的<random>库,是对传统随机数生成机制的彻底革新,彻底解决了以往rand()函数在可移植性、随机质量和线程安全上的诸多不足。

2025-05-05 19:53:01 187

原创 一、变参模板和std::tuple的本质是什么?

C++11引入的变参模板(Variadic Templates)和以此为基础的std::tuple,是对C++模板编程能力的根本性提升。它们不仅让我们能够优雅地处理任意数量和类型的参数,还极大地丰富了泛型编程的表达力。

2025-05-05 19:39:44 190

原创 一、什么是std::function?为什么C++11要引入它?

C++11引入的std::function,可以说是函数调用机制上的一次质的飞跃。它不仅极大地简化了函数、函数指针、lambda表达式、仿函数(即重载了operator()的类对象)等各种可调用对象的统一管理和调用,也深刻体现了C++设计哲学中“泛化”和“类型擦除”的精髓。

2025-05-05 19:21:19 184

原创 一、emplace_back的本质与设计哲学

C++11引入的emplace_back,是STL容器(尤其是std::vector)中一个极具实用价值的新特性。它的核心优势在于“就地构造元素”,通过直接在容器内部的内存空间构造对象,避免了传统push_back中临时对象的创建、拷贝或移动,从而提升性能和资源利用效率。

2025-05-05 19:09:36 245

原创 一、这三大算法的本质和设计哲学

C++11引入的三个新算法--std::all_of、std::any_of和std::none_of,是对传统循环判断的优雅替代,它们不仅让代码更简洁、更具表达力,还内置了“短路”机制,提升了执行效率。

2025-05-05 19:01:43 274

原创 一、std::chrono的核心理念与三大基石

C++11引入的std::chrono库,是对传统C++时间处理方式的一次根本性革新。它不仅统一了时间与日期的表示和计算,还以模板化设计赋予了极强的灵活性和类型安全,彻底告别了以往依赖C风格时间函数的混乱和不精确。

2025-05-05 18:52:48 230

原创 1. std::regex是什么?为什么C++11要引入它?

C++11引入的std::regex,为C++语言正式带来了标准化的正则表达式支持。这是一个在现代软件开发中极其重要的工具,尤其在文本处理、数据验证、日志分析等领域不可或缺。

2025-05-05 18:44:51 132

原创 什么是std::tuple?它解决了什么问题?

std::tuple。

2025-05-05 18:38:17 172

原创 1. 设计哲学:非拥有观察者,打破循环引用死结

C++11中引入的std::weak_ptr是智能指针家族中专门用于解决std::shared_ptr循环引用问题的关键工具。它提供了一种“非拥有”的弱引用机制,允许程序观察shared_ptr管理的对象而不增加引用计数,从而避免因循环引用导致的内存泄漏。

2025-05-05 18:00:32 911

原创 1. 设计哲学:共享所有权,自动管理,安全高效

C++11引入的std::shared_ptr是智能指针家族中实现“引用计数共享所有权”的重要成员。它允许多个shared_ptr实例共享同一个对象的所有权,通过内部维护的引用计数机制自动管理对象生命周期,极大简化了动态内存管理,避免了内存泄漏和悬挂指针问题。

2025-05-05 17:53:18 837

原创 1. 设计哲学:独占所有权,自动管理,零开销抽象

C++11中引入的std::unique_ptr是现代C++智能指针家族中的重要成员,代表了“独占所有权”的智能指针。它不仅自动管理动态分配的资源生命周期,避免内存泄漏,更通过独占语义和移动语义,帮助程序员写出更安全、更高效的代码。本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。个人教程网站内容更丰富:(https://www.1217zy.vip/)

2025-05-05 17:45:27 742

原创 1. 设计哲学:让线程“睡觉等待”,避免忙等浪费资源

C++11引入的std::condition_variable是多线程编程中极为重要的同步原语,专门用来协调多个线程之间的等待和通知机制。它解决了线程间“等待某个条件成立再继续执行”的问题,配合互斥锁(std::mutex)使用,能高效且安全地实现线程间通信。本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。个人教程网站内容更丰富:(https://www.1217zy.vip/)

2025-05-05 17:37:54 903

原创 1. 设计哲学:用硬件原子操作替代锁,追求高效且安全的并发

C++11引入的std::atomic是现代C++并发编程中实现无锁线程安全的核心工具。它通过硬件支持的原子操作,保证多线程环境下对共享数据的访问不会产生数据竞争,同时避免了传统锁机制带来的性能开销和死锁风险。本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。个人教程网站内容更丰富:(https://www.1217zy.vip/)

2025-05-05 17:20:52 704

原创 1. 设计哲学:让“锁”变得安全、简洁、自动

C++11引入的std::mutex和std::lock_guard,是现代C++并发编程中保护共享资源、避免数据竞争的核心工具。它们不仅简化了多线程同步的复杂度,还通过RAII设计理念大幅降低死锁和资源泄漏的风险。

2025-05-05 17:14:26 887

原创 1. 设计哲学:让多线程“像写普通代码一样简单”

C++11引入的std::thread,是C++语言首次将多线程支持纳入标准库,提供了一个跨平台、类型安全、易用的原生线程接口。

2025-05-05 17:05:51 662

原创 1. 设计哲学:把错误“揪”到编译期,拒绝“跑起来才发现”

C++11引入的static_assert,即“编译时断言”,是现代C++中极具威力且实用的特性之一。它让程序员能够在编译阶段验证某些条件是否成立,若条件不满足,编译器立刻报错,阻止错误代码进入运行时。这不仅提升了代码的健壮性,也极大地减少了调试和维护成本。

2025-05-05 16:55:30 744

原创 1. 异常规范的历史与设计哲学

C++11引入的noexcept关键字,是对异常规范机制的一次根本性革新。它不仅简化了异常声明的语法,更为程序员提供了更精准的异常行为表达和编译器优化的可能。

2025-05-05 16:45:28 539

原创 1. 什么是内存对齐?为什么要管它?

内存对齐简单来说,就是数据在内存中存放的位置必须满足一定的“地址倍数”规则。比如,4字节的int类型通常要求存放在4的倍数地址上。这样做的原因是:

2025-05-05 16:33:44 2076

原创 1. 设计哲学:让字面量“活”起来,提升表达力和安全性

C++11引入的用户定义字面量(User-Defined Literals,简称UDL)是语言层面为程序员打开的一扇“自定义表达式”的大门。它允许我们为字面量(比如数字、字符、字符串)添加自定义后缀,从而让代码更具语义化、更易读,也能减少重复的转换代码。

2025-05-05 16:28:31 775

原创 1. 设计哲学与核心价值

自定义类型要支持范围for,只需实现begin()和end()接口:public:private:return 0;解析• 只要类实现了begin()和end()(及其const版本),就能被范围for识别。• 这体现了C++的“依赖倒置原则”,容器只需提供迭代接口即可被通用算法和语法支持。C++11范围for循环不仅是语法糖,更是C++现代化设计哲学的体现:通过简洁、安全的接口,减少程序员负担,提高代码质量。

2025-05-05 16:15:11 1120

原创 std::forward是什么?

是C++11中完美转发的核心,它让模板函数能够“忠实地”传递参数的值类别,避免了传统模板编程中常见的性能和语义陷阱。它的底层依赖引用折叠和类型推导机制,体现了C++语言对类型系统的深度掌控。我认为,掌握不仅是掌握一个工具,更是理解现代C++泛型编程精髓的关键。它让我们能够写出既高效又语义准确的代码,推动C++向更安全、更灵活、更性能卓越的方向发展。

2025-05-04 19:15:06 714

原创 std::move是什么?

std::move其实是一个类型转换工具,它告诉编译器:“我不再需要这个对象的当前状态,可以把它当作右值来处理,允许资源‘偷走’”。它本身不做任何内存拷贝或搬迁,只是转换类型,让右值引用生效。

2025-05-04 19:10:33 672

原创 智能指针的设计哲学与核心价值

// filePtr销毁时自动调用FileCloser释放资源return 0;智能指针不仅是内存管理的工具,更是现代C++设计哲学的体现:自动化资源管理、明确所有权语义、提升异常安全性。它们让C++代码更健壮、更易维护,同时保留了高性能和灵活性。真正掌握智能指针,意味着你能从繁琐且易错的手动内存管理中解放出来,把精力放在业务逻辑和算法创新上。智能指针是现代C++程序员不可或缺的武器,是写出高质量代码的关键。

2025-05-04 19:02:50 571

原创 移动构造函数和移动赋值运算符是什么?

简单来说,移动语义就是“资源转移”,让程序避免无谓的深拷贝,提升性能。本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。个人教程网站内容更丰富:(https://www.1217zy.vip/)(加入我的知识星球,免费获取账号,解锁所有文章。https://t.zsxq.com/VZxX7)

2025-05-04 18:14:29 764

原创 什么是=default和=delete?

default优点缺点明确表达设计意图,代码更易读、易维护需要程序员理解特殊成员函数生成规则,初学者有学习成本编译器生成默认函数更高效,利于性能优化误用=delete可能导致接口限制过严,影响灵活性=delete防止错误调用,提升代码安全性旧代码迁移时需要逐步添加,存在兼容性问题支持禁止任意函数调用,不仅限于特殊成员函数过度删除函数可能导致代码复用受限=default。

2025-05-04 18:04:24 860

原创 什么是constexpr?

简单来说,constexpr就是告诉编译器:“我这个变量或函数的值可以在编译时算出来,请帮我提前算好,运行时直接用结果,不用再算了。”

2025-05-04 17:49:35 854

原创 什么是override和final?

•override:告诉编译器“我这函数是重写基类的虚函数”,编译器会帮你检查签名是否完全匹配,避免你写错函数名、参数或遗漏virtual导致的“假重写”问题。•final:告诉编译器“这个虚函数不能再被子类重写了”,或者“这个类不能被继承了”,用来防止后续派生类修改行为,保证设计意图。本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。个人教程网站内容更丰富:(https://www.1217zy.vip/)(加入我的知识星球,免费获取账号,解锁所有文章。优点缺点。

2025-05-04 17:42:25 849

原创 委托构造函数是什么?

传统C++中,一个类如果有多个构造函数(重载),它们往往会有很多重复的初始化代码。比如:

2025-05-04 17:34:32 760

原创 什么是右值引用和移动语义?大白话解释

•右值(Rvalue):临时对象或表达式结果,比如函数返回的临时对象、字面量、表达式结果等。它们没有持久的内存地址,生命周期短暂。•左值(Lvalue):有名字、有地址的对象,比如变量。传统C++中,引用只能绑定到左值(T&),无法直接操作右值。C++11引入了右值引用(T&&),专门绑定到右值,允许我们“窃取”临时对象的资源,而不是拷贝。移动语义就是利用右值引用,实现资源的“移动”而非“复制”,比如把一个大内存块的所有权从一个对象转移到另一个对象,避免昂贵的深拷贝。

2025-05-04 17:16:56 696

原创 变长模板参数是什么?用大白话说

优点缺点支持任意数量和类型的模板参数,极大增强泛型能力递归展开可能导致编译器生成大量代码,增加编译时间和二进制体积类型安全,编译期检查,避免运行时错误递归写法对初学者有一定理解门槛代码简洁,减少重载和重复代码复杂展开逻辑可能导致错误难以调试支持高级模板元编程和库设计过度使用可能导致代码难以维护和阅读变长模板参数不仅是C++11对模板编程的技术升级,更是一种**“编译期多态”的体现**。它让C++模板从“固定参数”迈向“无限扩展”,极大拓宽了泛型编程的边界。

2025-05-04 16:57:24 632

原创 什么是尾随返回类型?

这是我们熟悉的写法,返回类型写在函数名前面,参数列表后面是函数体。

2025-05-04 13:37:16 954

原创 什么是Lambda表达式?用大白话说

Lambda表达式就是“随写随用的匿名小函数”,它没有名字,可以直接写在代码里用,甚至能“顺手抓”你当前函数里的变量来用。简单来说,它就是一种内联的、临时的函数对象,让你不用再写一大堆单独的函数或仿函数类,代码更紧凑、更直观。本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。个人教程网站内容更丰富:(https://www.1217zy.vip/)举个最简单的例子:// 输出6这里,就是一个Lambda表达式,表示一个匿名函数,接收一个参数x,返回x+1。auto f。

2025-05-04 13:27:05 516

yolov5-v8命令总结

yolov5-v8命令总结

2024-07-08

yolov5-v7.0注释版本

yolov5-v7.0注释版本

2024-07-08

OTA远程升级资源文件

OTA远程升级资源文件

2023-08-22

Windows环境下MinGW编译完成Paho C/C++

Windows环境下MinGW编译完成Paho C/C++

2023-08-22

qt-mqtt客户端程序

qt_mqtt客户端程序

2023-08-22

猫狗图片深度学习中使用

猫狗图片

2023-08-17

Linux web服务器

MyWebServer是一个Linux高并发高性能http web服务器

2023-06-15

通过zlog库进行了裁剪的log日志

通过zlog库进行了裁剪的log日志

2023-06-11

Linux多线程高并发服务器

Linux多线程高并发服务器

2023-03-10

C++高程渲染点云伪彩图

C++高程渲染点云伪彩图

2023-01-29

openGL3D显示类

openGL3D显示类openGL3D显示类

2022-12-20

Windows ffmpeg

Windows ffmpeg

2022-10-07

ffmpeg-4.2.1-win32-shared

ffmpeg-4.2.1-win32-shared

2022-10-07

GrapgicsView_employ,qtcharts使用

GrapgicsView_employ,qtcharts使用

2022-09-14

QT-Charts使用

QT-Charts使用

2022-09-13

VTK实战教程.rar

VTK实战教程.rar

2022-09-01

VTK-8.2vs2015编译成功

使用vs2015编译VTK8.2,debug和release

2022-08-29

myOpenGLWidget

myOpenGLWidget

2022-07-14

qtQpainter使用

qt Qpainter使用qt Qpainter使用qt Qpainter使用

2022-07-04

Linux操作mysql数据库使用

Linux操作mysql数据库使用

2022-05-27

Linux常用的函数。

Linux常用函数库。

2022-05-04

FTP库文件,源代码。

FTP库文件,源代码。

2022-04-26

QScintila一个很好用的文本编辑器库

QScintila一个很好用的文本编辑器库

2022-04-20

密钥安全传输平台项目代码

密钥安全传输平台项目代码

2022-02-12

Qt驾校科目一相关代码

Qt驾校科目一相关代码

2022-02-06

共享内存类c++mmmmmm.zip

c++共享内存类

2021-12-04

openssl-1.1.1-pre6-dev.zip

openssl

2021-11-27

mysql80-community-release-el7-4.noarch.rpm

mysql

2021-11-26

c语言文件加密.zip

文件加密解密源文件

2021-10-25

qt_GoldGame.rar

Qt翻金币小游戏

2021-09-06

Project2.rar

文件增删查改排序

2021-08-04

空空如也

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

TA关注的人

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