自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 C++ 容器

C++ 容器(Container)是指一种数据结构,用于存储和管理一组元素。容器提供了一种方便的方式来存储和访问数据,支持各种算法和迭代器。

2024-08-27 10:51:53 320

原创 C++ 内存管理

(Stack Memory):栈内存是由编译器自动管理的内存区域,用于存储函数的局部变量、函数参数和返回值。当函数调用时,栈内存会自动分配,当函数返回时,栈内存会自动释放。静态变量在程序启动时分配内存,在程序结束时释放内存。(Heap Memory):堆内存是由程序员手动管理的内存区域,用于存储动态分配的内存的区域。智能指针是 C++11 引入的一种内存管理方式,用于自动管理内存,避免内存泄漏和野指针。容器是 C++ 标准库提供的一种内存管理方式,用于自动管理内存,避免内存泄漏和野指针。

2024-08-19 09:58:21 909

原创 C++ 数据类型

这种转换发生在表达式中,当一个类型的值被赋给另一个类型的变量时,或者当一个类型的值被用于另一个类型的运算时。C++ 类型转换是指将一个类型的值转换为另一个类型的值。C++ 提供了多种类型转换的方法,包括隐式转换和显式转换。它可以将一个类型的值转换为另一个类型的值,并进行运行时检查。它可以将一个常量类型的值转换为一个非常量类型的值。它可以将一个类型的值转换为另一个类型的值,但不进行运行时检查。它可以将一个类型的值转换为另一个类型的值,但。显式转换是指使用特定的语法进行类型转换。

2024-08-15 16:15:55 896

原创 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 539

原创 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 714

原创 TCP/UDP

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,其传输的单位是报文段。特征面向连接:在数据传输之前,需要建立一个可靠的连接。可靠传输:通过序列号、确认应答和重传机制来保证数据的可靠传输。TCP 如何保证可靠传输序号: TCP 为每个数据包分配一个序号(Sequence Number),以便接收端可以按序号顺序重组数据包。确认: TCP 接收端会发送确认(ACK)包,确认接收端已收到数据包。重传。

2024-08-01 11:09:14 804

原创 C++ 任务队列

(来自ChatGPT)任务队列是一种数据结构,用于存储和管理任务(Task)的执行顺序和优先级。任务队列通常由一个队列(Queue)组成,用于存储任务的执行顺序和优先级。任务队列的优点:高效的任务执行: 任务队列可以高效地执行任务,减少任务的等待时间和提高系统的吞吐量。任务优先级管理: 任务队列可以管理任务的优先级,确保高优先级任务先执行。任务调度管理: 任务队列可以管理任务的调度,确保任务按照正确的顺序和优先级执行。可伸缩性: 任务队列可以根据系统的负载动态调整任务的数量和优先级。可靠性。

2024-07-30 13:50:50 573

原创 C++ 多线程

条件变量通常与互斥量一起使用,用于在线程之间进行通信,允许一个线程等待直到满足特定条件,而另一个线程则通知条件满足。互斥量是一种常用的同步机制,用于保护对共享资源的访问,确保任何时候只有一个线程可以访问受保护的资源。C++ 多线程是指在一个程序中同时运行多个线程,每个线程都可以执行不同的代码段。原子类型用于在不使用锁的情况下实现线程安全的操作,适用于简单的数据类型和操作。C++ 多线程性能优化是一个复杂的话题,涉及到很多因素,包括。:线程池可以减少线程创建和销毁的开销。:任务队列可以优化线程调度。

2024-07-29 16:41:54 748

原创 面向服务的架构(SOA)

面向服务的架构(Service-Oriented Architecture, SOA)是一种,它将应用程序结构化为一组相互通信的服务。每个服务代表一个业务能力或一组相关功能,可以通过标准化的接口和协议访问。核心理念是将复杂的应用分解成一系列松耦合的服务,这些服务可以独立部署、管理和重用。(Request-Response Pattern):客户端发送请求给服务,服务处理请求并返回响应。(Event-Driven Pattern):服务发布事件,其他服务或客户端可以消费这些事件。

2024-07-29 16:15:04 1538

原创 C++ 进程 线程

线程间通信是指多个线程之间交换数据和协调工作的机制。由于线程之间共享同一个进程的虚拟地址空间,因此可以使用共享变量、互斥锁、条件变量等机制来实现线程间通信。进程间通信(Inter-Process Communication,IPC)是指不同进程之间的数据交换和同步。C++中的线程(Thread)是一种轻量级的进程,是一个程序中的最小执行单元。,它允许开发者异步执行一个函数,即在一个独立的线程中执行该函数。C++11标准中引入了std::thread类,提供了创建和管理线程的功能。,表示单个线程的执行。

2024-07-22 21:53:49 1175

原创 C++ 单例模式 实现

单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。

2024-07-17 18:58:01 1261

原创 C++ 指针、智能指针、引用

控制块中有强弱引用计数,如果是使用make_shared初始化的函数则它所在的控制块空间是在所引用的shared_ptr中同一块的空间,若是new则控制器所分配的内存与shared_ptr本身所在的空间不在同一块内存。但是,悬空指针不能直接访问对象的成员变量或成员函数,因为编译器不知道指针所指向的对象的类型。也就是说,一个指针指针是一个指针,它的值是另一个指针的地址。悬空指针(Void Pointer)是一种特殊类型的指针,它可以指向任何类型的对象,但不能直接访问对象的成员变量或成员函数。

2024-07-16 20:31:39 885

原创 SQLite3 使用整理

上面执行的由光标(cursor)对象提供的方法的快捷方式,它通过调用光标(cursor)方法创建了一个中间的光标对象,然后通过给定的参数调用光标的 execute 方法。当没有更多的可用的行时,则返回一个空的列表。一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的。一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的。打开与 SQLite 数据库文件的连接并返回数据库连接对象,是数据库连接对象的构造函数。

2024-07-11 21:52:58 701

原创 C++ 线程池

(来自ChatGPT)线程池是一种用于管理和复用线程的机制。它可以提高程序的性能和效率,特别是在处理大量并发任务时。线程池中包含一定数量的线程,这些线程可以重复执行多个任务。当有任务需要执行时,可以将任务提交给线程池,线程池会选择一个可用的线程来执行任务。任务执行完毕后,线程会返回线程池,等待下一个任务的到来。线程池的优点:降低线程创建和销毁的开销:线程的创建和销毁是比较耗费资源的操作,使用线程池可以避免频繁地创建和销毁线程,提高程序的性能。提高系统的响应速度。

2024-07-01 20:36:40 1751

原创 VSCode 日常使用

VSCode 日常使用

2024-06-19 16:07:31 120

空空如也

空空如也

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

TA关注的人

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