
C++
文章平均质量分 81
耶耶耶耶耶~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QT6安装与概念介绍
本文摘要: Qt框架基于C++标准,通过MOC(元对象编译器)扩展了非标准C++特性,如信号槽机制和元对象系统。安装Qt需从源码编译,配置依赖库(如XCB插件)。Qt核心模块(Qt Core)提供对象通讯、属性系统和运行时类型信息等功能,依赖Q_OBJECT宏启用元对象特性。属性系统通过Q_PROPERTY宏实现动态属性管理,支持运行时查询。文章还介绍了Qt模块分类、源码编译步骤及跨平台插件配置方法。原创 2025-05-25 19:55:47 · 735 阅读 · 0 评论 -
cpp-httplib 解析
cpphttplib的简单解析。原创 2025-02-17 20:09:05 · 1054 阅读 · 0 评论 -
基于ASIO的异步IO编程
异步IO介绍见referencesasio和boost.asio的区别。原创 2025-01-16 20:25:44 · 824 阅读 · 0 评论 -
一种程序结构设计json,多线程,避免数据竞争
我已经学会了C语言,json解析程序就是用C语言的基本语法写的,那么我应该可以解析json了此外还提供了一种避免数据竞争的多线程程序。原创 2024-11-17 22:32:58 · 390 阅读 · 0 评论 -
深度探索C++对象模型
c++对象模型语言中直接支持面向对象程序设计的部分对于各种支持的底层实现机制说白了是介绍编译器是如何支持、实现C++的面向对象机制的。如,继承、虚函数、指向class members的指针等等,编译器是如何实现的。本书C++语法基于C++95本书出版自2001年,虽然书中用到的标准早已盖棺定论,cfront编译器也早已过时,当时来看一些无法确定的标准、难以实现的技术、功能也早已实现,但是对C++对象模型的某些实现方式依然沿用至今。这本书依然不过时。原创 2024-10-27 22:17:24 · 1589 阅读 · 0 评论 -
国密算法SM4实现
SM4是国内采用的一种分组密码标准,有国家密码管理局于2012年3月21日发布,相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。2016年8月,成为中国国家密码标准(GB/T 32907-2016)。SM4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,S盒为固定的8比特输入8比特输出。分组长度 block length: 一个信息分组的比特位数密钥长度key length:密钥的比特位数。原创 2024-10-27 22:15:55 · 831 阅读 · 0 评论 -
boost log 快速入门 Getting started
本文的boost log实力代码具有易读时间戳、可选日志级别和自动换行的C++风格日志打印功能,且保证原创 2024-10-24 22:07:11 · 1516 阅读 · 0 评论 -
C++ STL 适配器
适配器(adapters)在STL组件的灵活组合运用上扮演者重要角色。Adapter这个概念源于23个设计模式中的一个:将一个class的接口转换为以一个class接口,使原本因接口不兼容而不能合作的classes可以一起运作。实际上就是在原有的接口上再套一层接口或许叫接口适配器或者接口层也可algorithm里存放各种算法如accumulate,sort等functional里存各种xx函数如std::move, less, greater等适配器一般要和泛型算法配合使用方可体现其强大之处。原创 2024-09-08 21:09:11 · 772 阅读 · 0 评论 -
Cyclone DDS Getting started
ROS getting started https://blog.csdn.net/surfaceyan/article/details/137162604eProsima Fast DDS getting started https://blog.csdn.net/surfaceyan/article/details/137162608Fast-DDS & ros2 ros与fastdds通讯 https://blog.csdn.net/surfaceyan/article/details/14062原创 2024-08-25 09:17:28 · 425 阅读 · 0 评论 -
C++ STL 关联容器
C++STL迭代器iterator设计 https://blog.csdn.net/surfaceyan/article/details/126772555C++ STL 序列式容器(一 vector list) https://blog.csdn.net/surfaceyan/article/details/126860166C++ STL 序列式容器(二 deque slist) https://blog.csdn.net/surfaceyan/article/details/127083966t原创 2024-08-25 09:10:03 · 930 阅读 · 0 评论 -
C++11 标准库头文件模拟实现,无锁STL
暂不考虑支持多线程常用STL的简单实现,主要内容百行左右完成,意在理解STL的原理。原创 2024-06-23 18:57:41 · 479 阅读 · 0 评论 -
boost.asio使用简介
The Boost.Asio库是为使用C++进行系统编程的程序员设计的,在系统编程中,通常需要访问操作系统功能(如网络)。特别是Boost。便携性。该库应支持一系列常用的操作系统,并在这些操作系统之间提供一致的行为。可扩展性。该库应促进可扩展到数千个并发连接的网络应用程序的开发。每个操作系统的库实现都应该使用最能实现这种可伸缩性的机制。效率该库应支持分散采集I/O等技术,并允许程序最大限度地减少数据复制。从已建立的API(如BSD套接字)中建模概念。原创 2024-03-09 21:53:10 · 2241 阅读 · 0 评论 -
c++并发编程/多线程 thread 库
/ 即使函数的形参是引用类型也会发生拷贝构造,除非:// 这样value对象就是主线程中的对象。原创 2023-11-20 22:02:03 · 238 阅读 · 0 评论 -
Valgrind——c/c++内存检测工具
Valgrind 是一个用于构建动态分析工具的检测框架。Valgrind包含了可以自动检测多种内存管理和线程错误的工具,并对程序进行详细的分析。而且,还可以使用Valgrind来构建新工具。原创 2023-10-21 09:28:43 · 321 阅读 · 0 评论 -
GNU-ncurses库简介
ncurses是一个管理应用程序在字符终端显示的函数库。它提供了移动光标,建立窗口,产生颜色,处理鼠标操作等功能。ncurses提供的是字符用户界面,而非图形用户界面。原创 2023-09-20 22:30:39 · 1937 阅读 · 0 评论 -
c++新标准11~17等
{初始化列表},可用于所有的内置类型和用户定义的类型,可添加=也可不加。// = {3.4} 报错 double y = {2.35 };double w;1 , 3.45 };1 , 3.45 };如果有类将模板std::initializer_list作为参数的构造函数,则只有该构造函数可以使用列表初始化形式STL容器提供了将initializer_list作为参数的构造函数。原创 2023-07-02 15:28:18 · 241 阅读 · 0 评论 -
操作系统概述(二、入门,基础,计算机系统)
软件和硬件的桥梁操作系统的加载和初始化AbstractMachine代码导读__LabOS- 熟悉代码框架- 多处理器上的kalloc/free- 中断和异常驱动的上下文(线程)切换- 虚拟地址空间、用户态进程和系统调用- 虚拟文件系统。devfs, procfs, 简单的文件系统;ELF加载器如果一个人在未经训练的情况下就能把某件事情做的很好,证明他在某件事情上很有“天赋”,但是和接受过专业训练的人依然存在不小的差距。原创 2023-06-24 22:29:52 · 453 阅读 · 0 评论 -
c++输入输出文件操作stream
c++程序把输入和输出看作字节流。输入时,程序从输入流中抽取字节:输出时,程序将字节流插入到输出流中。一般输入和输出都有缓冲区。C++程序通常在用户按下回车键时刷新输入缓冲区。cin: 标准输入流cout: 标准输出流如果输出被重定向到文件,则标准错误流依然会被输出到屏幕cerr: 标准错误流,无缓冲区clog: 标准错误流,有缓冲区coutostream类将输出转化为字符字节流put() 显示字符write() 显示字符串将val内存中的数据作为字节字符输出到屏幕输出缓冲区。原创 2023-05-27 20:50:13 · 2976 阅读 · 0 评论 -
C/C++混用情况解决 编译问题
无。原创 2023-04-20 23:09:37 · 529 阅读 · 0 评论 -
MyString 类 构造函数 对象行为 设计模式 单例模式
记录不同行为的拷贝与构造情况。略。原创 2023-04-16 10:41:06 · 424 阅读 · 1 评论 -
A a(std::string (ch) );
不要写奇奇怪怪的语法就是了。原创 2023-04-10 20:19:29 · 104 阅读 · 0 评论 -
c++ plus复习(二)
对于静态类成员,可以在类声明之外使用单独的语句来进行初始化,这是因为静态类成员是单独存储的,而不是对象的组成部分。C++函数的作用域可以是整个类或整个命名空间(包括全局的),但不能是局部的(因为不能在代码块内定义函数,如果函数的作用域为局部,则只能对它自己是可见的,因此不能被其他函数调用。这样的函数将无法运行)。初始化是在方法文件中,而不是在类声明文件中进行的,因为类声明位于头文件中,程序可能将头文件包括在其他几个文件中。声明类指是描述了对象的形式,并没有创建对象,在创建对象前,将没有用于存储值的空间。原创 2023-04-02 19:18:11 · 427 阅读 · 0 评论 -
c++ plus复习(一)
C++数类型分为基本类型和复合类型。基本类型分为整形和浮点型,复合类型如数组、指针、结构体等。原创 2023-03-19 21:16:11 · 460 阅读 · 0 评论 -
C++内存管理
C++内存管理。原创 2022-12-08 21:53:20 · 257 阅读 · 0 评论 -
C++ static小结
总结static关键字的作用定义static变量意味只能在本.c/.cpp文件中使用该变量,而不能被其他.c/.cpp文件使用。定义的static变量存储在静态区,所以只初始化一次,其生命周期较长,从程序开始直至结束。定义static函数,意味只能在本.c/.cpp文件中使用该函数,而不能被其他.c/.cpp文件使用,可防止命名冲突。(定义的全局变量或函数默认是extern的。)原创 2022-12-01 23:20:18 · 533 阅读 · 0 评论 -
tinystl_list Debug
tinystl_list 的 iterator使用了模板继承,模板继承与普通的继承方式并不完全一样。原创 2022-11-29 22:15:43 · 101 阅读 · 0 评论 -
模板特例化,偏特化,左右值引用
其中尖括号中的T、U为模板参数,可以用class也可以用typename(书中推荐用ypename)如类模板:};当T为某种特定的类型时需要改变类的定义,处理此特殊情况需要特例化模板:template};模板特例化大致意思为:如果class template拥有一个以上的template参数,我们可以针对其中某个(或数个,但非全部)template参数进行特例化工作,换句话说,我们可以在泛化设计中提供一个特例化版本(也就是将泛化版本中的某些template参数赋予明确的指定)。原创 2022-11-05 16:38:53 · 303 阅读 · 0 评论 -
heap排序算法
堆数据结构可以有两种表示方法用指针表示用一维数组表示堆是完全二叉树,索引从0开始,满足下述条件若父节点索引为 i ,则它的左孩子节点索引为 2i+1 ,右孩子节点索引为 2i + 2若孩子节点(包括左右孩子)索引为 i ,则其父节点为 (i-1)/2 向下取整堆是完全二叉树,可以用指针或者数组表示。push_heap的前提是最后一个元素之前满足堆条件,push_heap将最有一个元素插入堆中,插入后整个数组又都满足堆条件。原创 2022-09-28 20:21:43 · 216 阅读 · 0 评论 -
static void(*set_malloc_handler(void(*f)() ) ) ()
写法较为复杂的函数原创 2022-08-15 15:45:56 · 269 阅读 · 0 评论 -
动态规划/背包问题总结/小结——01背包、完全背包
本文以01背包模型为切入点,结合动态规划的五个步骤,深入浅出的介绍了经典背包问题的解法,主要包括了01背包和完全背包。并对背包问题做了简要总结原创 2022-08-04 20:43:31 · 1118 阅读 · 0 评论 -
socket通讯
端口复用IO多路复用端口复用最常用的用途是:防止服务器重启时之前绑定的端口还未释放程序突然退出而系统没有释放端口IO多路复用(IO多路转接)I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 I/O 多路复用的系统调用主要有 select、poll 和 epoll。主旨思想:poll...原创 2022-07-06 23:30:28 · 156 阅读 · 0 评论 -
常用排序算法c/c++
列举了常用排序算法,并给出代码对算法的核心思想进行了简明扼要地说明原创 2022-06-24 10:21:28 · 289 阅读 · 0 评论 -
Linux内存对齐
内存对齐,类的sizeof大小原创 2022-06-18 16:27:11 · 394 阅读 · 0 评论 -
chapter 7类
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言chapter 7 class二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下原创 2022-04-20 14:42:35 · 501 阅读 · 0 评论 -
19 C++ 特殊工具与技术
系列文章目录文章目录系列文章目录前言控制内存分配定位new表达式运行时类型时别dynamic_cast运算符typeid运算符使用RTTItype_info类枚举类型类成员指针数据成员指针成员函数指针将成员函数用作可调用对象嵌套类union:一种节省空间的类局部类固有的不可移植的特性位域volatile限定符链接指示:extern “C”总结前言该章节为扩展内容控制内存分配// new expressionstring *sp = new string("a value");调用op原创 2022-05-27 14:16:30 · 281 阅读 · 0 评论 -
17 C++ tuple、bitset、正则表达式、随机数、IO库
系列文章目录文章目录系列文章目录前言tuple类型\前言从1998年至2011年,标准库部分的篇幅增加了两倍以上。本片介绍4个较为通用的标准库设施:tuple、bitset、随机数生成、正则表达式。此外还会介绍一些附加的IO库功能:格式控制、未格式化IO、随机访问。标准库占据了标准文本近2/3的篇幅。提示:以下是本篇文章正文内容,下面案例可供参考tuple类型<tuple><tuple>可以将tuple看作一个’快速而随意’的数据结构定义和初始化tuplet原创 2022-05-20 22:32:00 · 238 阅读 · 0 评论 -
18 C++ 异常处理、命名空间、多重继承与虚继承
系列文章目录文章目录系列文章目录前言异常处理命名空间总结前言异常处理、命名空间、多重继承异常处理命名空间总结原创 2022-05-20 15:08:42 · 263 阅读 · 0 评论 -
16 C++ 模板与泛型编程
模板是C++中泛型编程的基础。一个模板就是一个创建类或函数的蓝图或公式。当使用一个vector这个样的泛型类型,或find这样的泛型函数时,我们提供足够的星系,将蓝图转换为特定的类或函数。这种转换发生在编译时。function template 模板参数列表template parameter list 模板参数template parameter 模板实参template argument非类型模板参数nontype parameterinline和constexpr类模板实原创 2022-05-17 14:41:37 · 701 阅读 · 0 评论 -
15 C++面向对象程序设计
系列文章目录 系列文章15文章目录系列文章目录前言OOP:概述定义基类和派生类类型转换与继承虚函数抽象基类访问控制与继承类继承中的类作用域构造函数与拷贝控制虚析构函数合成拷贝控制与继承派生类的拷贝控制成员继承的构造函数容器与继承Basket类文本查询程序again总结前言面向对象程序设计基于三个基本概念:数据抽象、继承和动态绑定。OOP:概述object-oriented programming 的核心思想是数据抽象、继承和动态绑定。继承 inheritance基类 base cla原创 2022-05-12 21:43:37 · 253 阅读 · 0 评论 -
14 C++ 重载运算与类型转换
文章目录前言基本概念输入和输出运算符算数和关系运算符相等运算符关系运算符赋值运算符下标运算符递增递减运算符成员访问运算符函数调用运算符lambda是函数对象总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考基本概念运算符函数//错误:不能为int重新定义内置的运算符int operator+(int, int);只能重载已原创 2022-05-09 22:28:30 · 546 阅读 · 0 评论