C++
文章平均质量分 75
Monkey Ji
凡事先独立思考,再去做!!
展开
-
关于 std::condition_variable
std::condition_variable 是 C++ 标准库提供的一个线程同步的工具,用于实现线程间的条件变量等待和通知机制。条件变量的发生通常与某个共享变量的状态改变相关。 在多线程编程中,条件变量通常和互斥锁(std::mutex)一起使用,以避免死锁等问题。原创 2023-05-10 14:22:42 · 1055 阅读 · 1 评论 -
C++中的右值引用
右值引用是C++11中新增的一个特性,它的出现主要是为了优化程序的性能和提高代码的可读性。 右值引用本质上是一个指向右值的引用,通过右值引用可以实现移动语义和完美转发等功能,从而提高程序的效率和灵活性。原创 2023-03-28 16:14:15 · 1548 阅读 · 0 评论 -
C++20中的span容器
span 是一个轻量级的非拥有式容器,它提供了对连续内存的引用。span 的主要用途是作为函数参数,可以避免不必要的内存拷贝,并且可以防止悬垂指针和空指针引用的问题。原创 2023-03-03 10:46:56 · 3959 阅读 · 0 评论 -
PImpl(Pointer to Implementation)指向实现的指针
PImpl是Pointer to Implementation的缩写,也被称为“编译期实现”,是一种C++设计的模式。 用于将类的实现细节与其公共接口分离开来。该模式的核心思想是 通过一个指向类的实现的指针来隐藏类的实现细节,从而提高类的封装性和安全性。原创 2023-03-01 16:57:36 · 1459 阅读 · 0 评论 -
C++中的Lambda表达式
一个lambda表达式表示一个可调用的代码单元,可理解为一个未命名的内联函数。一个lambda表达式具有一个返回类型、一个参数列表和一个函数体 [capture list ] ( ...原创 2021-12-02 18:28:12 · 3362 阅读 · 0 评论 -
[C++] 类的静态成员 (静态数据成员 和 静态成员函数)
目录一、声明静态成员:二、定义静态成员:三、使用类的静态成员:四、静态成员类内初始化:五、静态成员与普通成员的区别:六、案例代码:类内的静态成员包括:静态数据成员和静态成员函数。类的静态成员存在于任何对象之外,对象中不包含任何与静态数据成员有关的数据。一、声明静态成员:在成员(函数或变量 )声明之前加上关键字static。静态成员可以是 public或private的。静态数据成员的 类型 可以是常量、引用、指针、类类型等。cl...原创 2021-09-22 18:48:18 · 3860 阅读 · 0 评论 -
void* 指针
void* 是一种特殊的指针类型,可用于存放任意对象的地址。 float obj = 3.1415;void* pv = &obj;一个void*指针存放着一个地址,这一点和其他指针类似。 不同的是,对地址中到底是什么类型的对象并不知道。因此不能直接操作void*指针所指的对象,因为不知道这个对象到底是什么类型,也就无法确定能在这个对象上做哪些操作。 void* 指针不能访问内存空间中所存的对象,仅仅是能把任意对象的地址存放到内存空...原创 2021-09-10 00:35:31 · 1273 阅读 · 0 评论 -
指针的指针
如果想详细地理解指针,一定要理解地址与内容的关系。在这之前,一定要了解内存和地址的意义:1.内存中的每个位置都由一个独一无二的地址标识2.内存中的每个位置都包含一个值。一.地址与内容的关系图示是内存中的存储的5变量的值,假设在内存中已经创建了内存空间并存储了数值:变量a的地址是100,变量b的地址是104,变量c的地址是108,变量d的值是112,变量e的地址是116.C/C++中通过名字访问内存的位置,不是直接访问...原创 2021-09-06 19:33:17 · 824 阅读 · 0 评论 -
warning:implicit declaration of function‘memset‘已解决
C语言使用GCC编译时,报了:warning:implicit declaration of function 'memset'原因: 未包含 函数声明的 头文件解决办法: #include<string.h>(包含memset函数的头文件是 string.h)原创 2021-08-17 15:06:38 · 4533 阅读 · 0 评论 -
C++中优先队列的priority_queue<int,vector<int>,greater<int>>与priority<int>的用法
C++中的优先队列是由二叉堆实现的。默认是使用 大根堆实现。1. priority<int>是默认的大根堆实现,top()是当前优先队列的最大值。#include <iostream>#include <queue>using namespace std;int my_array[10] = {3,5,6,2,1,-8,10,4,-7,-6};int main(){ priority_queue<int> q;...原创 2021-07-19 14:58:58 · 8725 阅读 · 4 评论 -
C/C++ 内存四区:代码区 全局区 栈区 堆区
编写程序一定要清楚可编程区域的划分 ,及 生命周期。可以将内存分为四个区域: 代码区原创 2021-06-10 11:01:58 · 671 阅读 · 0 评论 -
软件开发(电子书籍下载 )
以下列出了一些存货,C/C++后台开发需要的一些工具和学习电子书籍,格式均为PDF:《C和指针》(第二版) 链接 提取码:2x4o《C++ primer》(中文 第五版) 链接 提取码:dzf6《现代操作系统》(第四版)链接提取码:kuwy《算法导论》(第三版)链接提取码:78xm《鸟哥私房菜》 链接 提取码...原创 2020-04-30 18:24:03 · 826 阅读 · 0 评论