C++
文章平均质量分 87
C++ 使用积累记录
暮色尽染
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++ 格式说明符
在 C/C++ 中,格式说明符(Format Specifiers)主要用于printf()scanf()等输入输出函数中,用于控制数据的格式化输入和输出。原创 2025-05-22 09:55:35 · 811 阅读 · 0 评论 -
C++ 简介
C++是一种由Bjarne Stroustrup在1979年在贝尔实验室开始开发的一种的编程语言。C++被设计为一种“增强”的C语言,保留了C语言的高效性和灵活性,同时引入了和等特性。原创 2024-12-02 16:25:42 · 997 阅读 · 0 评论 -
C++ 继承
C++ 中的继承是一种面向对象编程的特性,它允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和方法。继承支持代码的重用,并允许创建一个层次结构的类。原创 2024-12-07 22:17:55 · 856 阅读 · 0 评论 -
C++ 多态
抽象类是包含至少一个纯虚函数(pure virtual function)的类,纯虚函数使用= 0定义。抽象类不能被直接实例化,通常用作接口。包含纯虚函数的类称为抽象类。抽象类不能被直接实例化,但可以作为基类来使用。派生类必须重写抽象类中的所有纯虚函数,才能被实例化。public:// 纯虚函数public:void pureVirtualFunction() override { // 必须重写纯虚函数// 调用重写的纯虚函数return 0;原创 2024-12-06 08:57:58 · 1005 阅读 · 0 评论 -
C++ 进程 线程
线程间通信是指多个线程之间交换数据和协调工作的机制。由于线程之间共享同一个进程的虚拟地址空间,因此可以使用共享变量、互斥锁、条件变量等机制来实现线程间通信。进程间通信(Inter-Process Communication,IPC)是指不同进程之间的数据交换和同步。C++中的线程(Thread)是一种轻量级的进程,是一个程序中的最小执行单元。,它允许开发者异步执行一个函数,即在一个独立的线程中执行该函数。C++11标准中引入了std::thread类,提供了创建和管理线程的功能。,表示单个线程的执行。原创 2024-07-22 21:53:49 · 1701 阅读 · 0 评论 -
C++ 结构体(Struct)
结构体是一种用户自定义的数据类型,它允许我们将多个变量组合在一起,这些变量可以是不同的数据类型。// ...在C++中,结构体与类(class)非常相似,主要区别在于默认的访问权限:结构体的成员默认是public,而类的成员默认是private。原创 2024-11-26 20:07:51 · 1416 阅读 · 0 评论 -
C++ 类(Class)
C++中的类(Class)是一种用户定义的数据类型,它封装了数据(成员变量)和操作这些数据的函数(成员函数)。成员,没有基类的自定义移动赋值运算符,编译器会生成一个默认移动赋值运算符。在C++中,如果类没有显式定义某些成员函数,编译器会根据需要自动生成默认成员函数。成员,没有基类的自定义移动构造函数,编译器会生成一个默认移动构造函数。在C++中,类的成员函数是定义在类内部的函数,它们可以访问类的私有和保护成员。成员函数定义了类的行为。在C++中,类的成员变量是定义在类内部的变量,它们代表了类的状态。原创 2024-11-28 10:52:21 · 1452 阅读 · 0 评论 -
C++ 多线程
条件变量通常与互斥量一起使用,用于在线程之间进行通信,允许一个线程等待直到满足特定条件,而另一个线程则通知条件满足。互斥量是一种常用的同步机制,用于保护对共享资源的访问,确保任何时候只有一个线程可以访问受保护的资源。C++ 多线程是指在一个程序中同时运行多个线程,每个线程都可以执行不同的代码段。原子类型用于在不使用锁的情况下实现线程安全的操作,适用于简单的数据类型和操作。C++ 多线程性能优化是一个复杂的话题,涉及到很多因素,包括。:线程池可以减少线程创建和销毁的开销。:任务队列可以优化线程调度。原创 2024-07-29 16:41:54 · 980 阅读 · 0 评论 -
C++ 线程池
(来自ChatGPT)线程池是一种用于管理和复用线程的机制。它可以提高程序的性能和效率,特别是在处理大量并发任务时。线程池中包含一定数量的线程,这些线程可以重复执行多个任务。当有任务需要执行时,可以将任务提交给线程池,线程池会选择一个可用的线程来执行任务。任务执行完毕后,线程会返回线程池,等待下一个任务的到来。线程池的优点:降低线程创建和销毁的开销:线程的创建和销毁是比较耗费资源的操作,使用线程池可以避免频繁地创建和销毁线程,提高程序的性能。提高系统的响应速度。原创 2024-07-01 20:36:40 · 2080 阅读 · 0 评论 -
C++ 任务队列
(来自ChatGPT)任务队列是一种数据结构,用于存储和管理任务(Task)的执行顺序和优先级。任务队列通常由一个队列(Queue)组成,用于存储任务的执行顺序和优先级。任务队列的优点:高效的任务执行: 任务队列可以高效地执行任务,减少任务的等待时间和提高系统的吞吐量。任务优先级管理: 任务队列可以管理任务的优先级,确保高优先级任务先执行。任务调度管理: 任务队列可以管理任务的调度,确保任务按照正确的顺序和优先级执行。可伸缩性: 任务队列可以根据系统的负载动态调整任务的数量和优先级。可靠性。原创 2024-07-30 13:50:50 · 1211 阅读 · 0 评论 -
C++ 字符串
char[] 转换为 std::wstring:可以先将 char[] 转换为 std::string,然后再将 std::string 转换为 std::wstring。std::wstring 转换为 char[]:可以先将 std::wstring 转换为 std::string,然后再将 std::string 转换为 char[]。std::wstring 转换为 std::string:可以使用 std::wstring_convert 类。char* 转换为 char[]:可以直接赋值。原创 2024-08-07 10:40:02 · 794 阅读 · 0 评论 -
C++ 数据类型
这种转换发生在表达式中,当一个类型的值被赋给另一个类型的变量时,或者当一个类型的值被用于另一个类型的运算时。C++ 类型转换是指将一个类型的值转换为另一个类型的值。C++ 提供了多种类型转换的方法,包括隐式转换和显式转换。它可以将一个类型的值转换为另一个类型的值,并进行运行时检查。它可以将一个常量类型的值转换为一个非常量类型的值。它可以将一个类型的值转换为另一个类型的值,但不进行运行时检查。它可以将一个类型的值转换为另一个类型的值,但。显式转换是指使用特定的语法进行类型转换。原创 2024-08-15 16:15:55 · 981 阅读 · 0 评论 -
C++ 内存管理
(Stack Memory):栈内存是由编译器自动管理的内存区域,用于存储函数的局部变量、函数参数和返回值。当函数调用时,栈内存会自动分配,当函数返回时,栈内存会自动释放。静态变量在程序启动时分配内存,在程序结束时释放内存。(Heap Memory):堆内存是由程序员手动管理的内存区域,用于存储动态分配的内存的区域。智能指针是 C++11 引入的一种内存管理方式,用于自动管理内存,避免内存泄漏和野指针。容器是 C++ 标准库提供的一种内存管理方式,用于自动管理内存,避免内存泄漏和野指针。原创 2024-08-19 09:58:21 · 1027 阅读 · 0 评论 -
C++ 指针、智能指针、引用
控制块中有强弱引用计数,如果是使用make_shared初始化的函数则它所在的控制块空间是在所引用的shared_ptr中同一块的空间,若是new则控制器所分配的内存与shared_ptr本身所在的空间不在同一块内存。但是,悬空指针不能直接访问对象的成员变量或成员函数,因为编译器不知道指针所指向的对象的类型。也就是说,一个指针指针是一个指针,它的值是另一个指针的地址。悬空指针(Void Pointer)是一种特殊类型的指针,它可以指向任何类型的对象,但不能直接访问对象的成员变量或成员函数。原创 2024-07-16 20:31:39 · 1318 阅读 · 0 评论 -
C++ 数组类型
定义 C++ 数组C++ 数组可以使用以下语法定义:初始化 C++ 数组C++ 数组可以使用以下语法初始化:访问 C++ 数组元素C++ 数组元素可以使用以下语法访问:C++ 数组的特点C++ 数组的使用场景需要固定大小数组:C++ 数组适用于需要固定大小数组的场景,如函数参数、结构体成员等。需要高性能:C++ 数组适用于需要高性能的场景,如游戏开发、科学计算等。需要兼容 C 代码:C++ 数组适用于需要兼容 C 代码的场景,如调用 C 函数等。std::array 是 C++11 引入的数组容器原创 2024-08-05 21:04:18 · 1187 阅读 · 0 评论 -
C++ 预处理器(Preprocessor)
用于定义宏。可以定义简单的宏,也可以定义带参数的宏。// 宏定义(#define)// 宏定义(#define) # define MACRO_NAME replacement - text // 取消宏定义(#undef) # undef MACRO_NAMEMACRO_NAME是想要定义的宏的名称。是当宏被使用时将替换宏名称的文本。1024MAX_SIZE被定义为1024。在代码中任何使用MAX_SIZE的地方,预处理器都会将其替换为1024。SQUARE(x)被定义为。当你调用。原创 2024-11-30 17:43:08 · 1425 阅读 · 0 评论 -
C++ 单例模式 实现
单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。原创 2024-07-17 18:58:01 · 1661 阅读 · 0 评论 -
C++ 模板
C++ 模板(Template)是一种,允许开发者编写可以在多种数据类型上工作的代码。模板可以将类型作为参数,使得代码可以在不同的数据类型上重用。模板可以用于和,使得同一份代码可以用于不同的数据类型。原创 2024-12-05 15:08:16 · 886 阅读 · 0 评论 -
C++ 容器
C++ 容器(Container)是指一种数据结构,用于存储和管理一组元素。容器提供了一种方便的方式来存储和访问数据,支持各种算法和迭代器。原创 2024-08-27 10:51:53 · 1480 阅读 · 0 评论 -
C++ Lambda 表达式
在现代编程中,匿名函数(Anonymous Functions)或称为 lambda 表达式,已经成为一种非常流行的编程构造。它们允许开发者在不定义传统函数的情况下创建函数。C++11 引入了对 Lambda 表达式的原生支持,极大地丰富了语言的表达能力和灵活性。原创 2024-12-27 10:57:44 · 522 阅读 · 0 评论
分享