C++
文章平均质量分 95
C++
Yawesh
劳动光荣,勤劳致富!
合作加V:YWS_yang
展开
-
运用自定义协议设计与实现“跨网络计算器”
本篇文章详细介绍了一个网络计算服务系统的构建过程,包括日志、协议、服务器和客户端四大模块的设计和实现。日志模块提供系统运行记录,协议模块定义数据交换格式,服务器模块处理计算请求,客户端模块负责与用户交互。文章还包含了Makefile文件的编写,以简化编译过程。整个系统的设计注重模块化和实用性,旨在提供高效的远程计算服务。原创 2024-04-27 00:01:10 · 1121 阅读 · 54 评论 -
【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
在本文中,我们将详细探讨基于环形队列的生产者消费者模型的设计和实现。我们将介绍环形队列的数据结构,分析生产者和消费者之间的同步机制,探索如何利用前文提到的POSIX信号量以及其他同步工具(如互斥锁)来实现生产者和消费者之间高效、安全的数据交换。通过具体的代码示例和案例分析,读者将能够深入理解生产者消费者模型的工作原理,掌握如何在实际项目中设计和实现基于环形队列的高效同步模型原创 2024-02-20 11:08:31 · 1456 阅读 · 39 评论 -
【C++入门到精通】C++类型的转换 | static_cast | reinterpret_cast | const_cast | dynamic_cast [ C++入门 ]
本文将继续讲解C++类型的转换,主要介绍static_cast、reinterpret_cast、const_cast和dynamic_cast这四种类型转换操作符的用法和特点。在C++中,类型转换是一种将一个数据类型转换为另一个数据类型的机制,用于在编程过程中灵活地处理不同数据类型之间的转换需求。本文将依次介绍这四种类型转换操作符的作用和适用场景,并给出相应的示例代码以说明其用法。同时,对于每种类型转换操作符,还会探讨其使用时需要注意的问题,以确保类型转换的安全性和正确性。原创 2024-02-15 18:48:31 · 1105 阅读 · 42 评论 -
【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]
本文主要介绍了 C 和 C++ 中的输入输出相关内容。首先介绍了 C 语言中的基本输入输出函数,如 scanf 和 printf 等。然后详细讲解了流的概念和 C++ 中的 IO 流。其中包括标准 IO 流,如 istream、ostream 和 iostream,以及常用的 cin 和 cout 对象,并介绍了文件 IO 流,包括 ifstream、ofstream 和 fstream。最后,本文对 stringstream 进行了简单介绍,包括它的定义、使用方法和作用。整篇文章内容详实,适合初学者阅读。原创 2024-02-03 19:44:05 · 2010 阅读 · 47 评论 -
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
懒汉模式(Lazy Initialization)是一种常用的单例设计模式,其核心思想是延迟创建对象实例,直到第一次使用该实例时才进行初始化。在懒汉模式中,对象的实例化是在需要时才进行,而不是在程序启动时就预先创建。原创 2024-01-31 18:31:58 · 1229 阅读 · 51 评论 -
【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]
本文是关于特殊类的概述性文章,介绍了四种常见的特殊类:不能被拷贝的类、只能在堆上创建对象的类、只能在栈上创建对象的类以及不能被继承的类。文章详细讨论了它们的实现方法、优缺点和应用场景,并提供了相应的代码示例,帮助读者更好地理解这些特殊类的概念和用法。此外,文章还讨论了C++98和C++11两个版本的编程语言在实现特殊类方面的差异。无论你是初学者还是资深程序员,本文都将为你提供有关特殊类的全面指南。原创 2024-01-27 20:38:08 · 1559 阅读 · 36 评论 -
【C++入门到精通】智能指针 shared_ptr循环引用 | weak_ptr 简介及C++模拟实现 [ C++入门 ]
这篇文章介绍了std::shared_ptr循环引用问题以及解决方案std::weak_ptr。它解释了循环引用的概念,并提供了使用示例和模拟实现方法。通过阅读这篇文章,您将了解循环引用问题以及如何使用std::weak_ptr来解决该问题。原创 2024-01-25 15:45:13 · 1673 阅读 · 51 评论 -
【C++入门到精通】智能指针 shared_ptr 简介及C++模拟实现 [ C++入门 ]
shared_ptr 是C++中的智能指针类,通过引用计数机制管理堆内存对象的生命周期,并使用原子操作确保引用计数的线程安全性。它支持拷贝构造和赋值运算符重载,可以安全地共享指向同一块堆内存的对象。此外,shared_ptr提供了方便的访问和操作接口,是一种方便而安全的资源管理工具原创 2024-01-20 12:29:15 · 1694 阅读 · 58 评论 -
【C++入门到精通】智能指针 auto_ptr、unique_ptr简介及C++模拟实现 [ C++入门 ]
这篇文章介绍了 C++ 中的两种智能指针:std::auto_ptr和std::unique_ptr。首先,文章简要介绍了它们的作用和使用示例。然后,对于std::auto_ptr,文章展示了一个简单的模拟实现,解释了每个函数的作用和实现原理。接着,文章介绍了更为严格的 std::unique_ptr,包括其特点、使用示例和模拟实现。对于模拟实现,文章详细解释了如何防止拷贝和赋值,并提供了两种不同的思路。整篇文章内容清晰明了,对于想要学习 C++ 动态内存管理的读者具有很好的参考价值。原创 2024-01-18 08:30:00 · 1794 阅读 · 65 评论 -
【C++入门到精通】智能指针 [ C++入门 ]
智能指针是一种能够自动管理动态分配的内存的特殊指针。相比于普通指针,智能指针能够避免内存泄漏等问题,提高程序的安全性和可靠性。内存泄漏是指程序无法释放已经分配的内存,造成资源浪费和程序不稳定。为了解决内存泄漏问题,可以使用 RAII 技术,即资源获取即初始化。该技术通过智能指针等方式管理内存,确保资源正确释放。智能指针的原理是基于 RAII 技术实现的,它封装指针对象并实现自动化的内存管理。内存泄漏可以分为堆内存泄漏和系统资源泄漏两种类型,可以使用工具进行检测和定位。原创 2024-01-14 08:00:00 · 1844 阅读 · 63 评论 -
【C++入门到精通】异常 | 异常的使用 | 自定义异常体系 [ C++入门 ]
异常是一种在程序运行过程中出现错误或异常情况时的处理机制。它能够提高程序的健壮性,提高代码的可读性和可维护性,允许异常在不同的层次上被捕获和处理,提高程序的灵活性和扩展性。然而,异常也可能会带来性能、可移植性和安全性等方面的问题,因此在使用时需要权衡利弊,选择合适的处理方式,以保证程序的健壮性和安全性。原创 2024-01-09 16:00:50 · 1731 阅读 · 54 评论 -
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
这篇文章探讨了C++中的function包装器和bind()函数的使用。首先介绍了function包装器的概念,它是一个通用的函数封装器,可以容纳各种可调用对象,并提供统一的接口来调用这些对象。然后详细介绍了function包装器的基本使用方法,包括定义function对象、赋值不同类型的可调用对象以及调用function对象的示例。最后,文章引入了bind()函数的概念,它可以用于将函数与其参数进行绑定,生成一个新的可调用对象。bind()函数的灵活性使得我们可以在传递函数时更加方便地指定参数。原创 2024-01-04 03:02:06 · 1818 阅读 · 69 评论 -
【C++入门到精通】condition_variable(条件变量)C++11 [ C++入门 ]
这篇文章介绍了C++中的条件变量的用法和功能。文章简要介绍了条件变量的概念,解释了它是如何实现线程之间的同步和通信的;列举并解释了条件变量的三个主要成员函数:wait()、notify_one()和notify_all()。最后,给出了两个使用示例:使用条件变量实现生产者-消费者模型和两个线程交替打印奇数和偶数。通过这篇文章,读者将能够了解条件变量的基本概念、成员函数的用法,并通过示例代码理解如何在实际应用中使用条件变量来实现线程间的同步和通原创 2023-12-29 11:58:45 · 2261 阅读 · 33 评论 -
【C++入门到精通】Lock_guard与Unique_lock C++11 [ C++入门 ]
本文介绍了RAII机制的概念、原理和优点。接着,介绍了C++标准库中的Lock_guard和Unique_lock两个类模板,它们都是基于RAII机制的互斥量管理工具。通过使用示例展示了Lock_guard和Unique_lock的使用方法,说明了如何通过这两个类模板来管理互斥量。通过将互斥量作为参数传递给构造函数,可以自动上锁互斥量,并在离开作用域时自动解锁,简化了代码,保证了线程安全。原创 2023-12-27 12:44:06 · 1804 阅读 · 61 评论 -
【C++入门到精通】互斥锁 (Mutex) C++11 [ C++入门 ]
本文介绍了四种C++中常用的互斥锁类型,这些互斥锁类型用于控制多线程对共享资源的访问,避免数据竞争和不确定行为的发生。其中,std::mutex是最基本的互斥锁类型,std::recursive_mutex是可递归的互斥锁类型,std::timed_mutex是限时等待互斥锁类型,std::recursive_timed_mutex是限时等待递归互斥锁类型。使用互斥锁时需注意正确的加锁和解锁操作,选择合适的互斥锁类型应根据具体需求和场景来进行。通过合理使用互斥锁,可以提高多线程程序的性能和并发能力。原创 2023-12-22 13:25:03 · 5645 阅读 · 58 评论 -
【C++入门到精通】 原子性操作库(atomic) C++11 [ C++入门 ]
本文介绍了C++11中的原子性操作库(atomic)及其用法和示例。原子操作是不可分割的操作,可以确保在多线程环境中对共享数据的读写操作是原子的。原子性操作库提供了一系列的原子类型和操作函数,用于处理并发编程中的数据竞争和不确定性行为。本文详细介绍了原子类型的创建、初始化和使用方法,以及一些常用的原子类型函数。通过几个示例演示了如何使用原子类型和操作函数来实现线程安全的计数器、互斥访问控制和无锁队列等。最后,强调了在实际应用中需要根据具体场景选择适当的原子类型和操作函数,并合理设置内存顺序。原创 2023-12-20 10:26:47 · 3529 阅读 · 59 评论 -
【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]
本文介绍了C++标准库中的std::thread类及相关函数。首先,对std::thread类进行了简单介绍,该类用于创建和管理线程。接着详细介绍了与线程相关的重要函数:start()函数用于启动新线程,join()函数用于等待线程结束并回收资源,detach()函数用于分离线程,get_id()函数用于获取线程ID,joinable()函数用于检查线程是否可被join或detach。最后,还介绍了std::this_thread命名空间,提供了与当前线程相关的功能。原创 2023-12-15 18:37:02 · 2214 阅读 · 66 评论 -
【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)
生产者消费者模型是多线程编程中的一个经典案例,它涉及到两类线程:生产者和消费者。生产者线程不断地生成数据,并将数据放入一个缓冲区中,消费者线程则不断地从缓冲区中获取数据,并进行相应的处理。在这个过程中,为了保证数据的完整性和正确性,需要使用同步机制来协调两类线程之间的操作,以避免数据竞争和死锁等问题的发生。本文将介绍如何使用条件变量来实现生产者消费者模型,帮助读者更好地理解多线程编程中的同步机制和技术。原创 2023-12-13 09:57:43 · 3355 阅读 · 60 评论 -
【C++入门到精通】 Lambda表达式 C++11 [ C++入门 ]
这篇文章首先介绍了C++98中的一个例子,然后详细讲解了Lambda表达式的语法结构,包括Lambda表达式的各个部分和捕获列表的说明。接着,文章深入探讨了Lambda表达式的底层原理,包括闭包类型的生成、捕获列表的处理、闭包对象的生成以及函数调用操作符的重载等方面。通过这些内容,读者可以全面了解Lambda表达式在C++中的使用方法和底层实现原理。原创 2023-11-23 00:54:42 · 1311 阅读 · 80 评论 -
【C++入门到精通】新的类功能 | 可变参数模板 C++11 [ C++入门 ]
本文主要介绍了C++11引入的一些新的类功能和可变参数模板相关的内容。其中包括默认成员函数、类成员变量初始化、强制生成默认函数和禁止生成默认函数的关键字,以及"override"和"final"关键字的用法。另外,文章还讨论了可变参数模板的概念,并介绍了递归函数方式和逗号表达式方式展开参数包的方法。通过阅读本文,读者可以了解这些新特性在C++编程中的应用,以及如何提升代码的可读性和灵活性。原创 2023-11-19 23:25:00 · 336 阅读 · 63 评论 -
【C++入门到精通】右值引用 | 完美转发 C++11 [ C++入门 ]
本文涵盖了C++中左值和右值的概念,以及左值引用和右值引用的含义和区别。文章介绍了`move()`函数的作用,以及左值引用和右值引用的比较。同时,文章探讨了右值引用在实际编程中的使用场景和意义,以及完美转发和`std::forward`函数的概念和实际应用场景。本文将帮助读者全面理解C++中与左值和右值相关的概念,以及如何利用右值引用和完美转发来提高代码效率和性能。原创 2023-11-19 00:41:32 · 439 阅读 · 59 评论 -
【C++入门到精通】C++11 [ C++入门 ]
本文全面介绍了C++11标准所引入的新功能和改进,旨在帮助读者深入了解并掌握这一重要的编程语言版本。通过阅读本文,读者将全面了解C++11的创新之处,为未来的C++编程实践奠定扎实基础。原创 2023-11-17 01:06:09 · 492 阅读 · 69 评论 -
高效处理大规模数据集的概率型数据结构—— 布隆过滤器 [C++入门]
C++中的布隆过滤器是一种高效的概率型数据结构,用于判断一个元素是否存在于一个集合中。它通过使用多个哈希函数和位数组来实现,可以在较小的内存占用和快速查询的基础上,提供高效的元素存在性判断。本文将深入解析C++中的布隆过滤器的原理和实现方式,并介绍其在大规模数据集处理、重复数据过滤等场景中的应用。同时,还将探讨如何优化布隆过滤器的性能和减少误判率。通过对C++中布隆过滤器的全面了解,读者将能够充分发挥其在实际项目中的优势,提升程序的效率和性能。原创 2023-10-31 18:17:50 · 470 阅读 · 72 评论 -
【C++入门到精通】位图 | 位图的实现[ C++入门 ]
位图是一种用于表示和操作大量二进制位的数据结构,它通过使用一个固定长度的数组来存储位的状态,每个位可以表示某种信息的存在与否。位图常用于解决需要高效存储和操作大量布尔类型数据的问题,例如集合操作、去重、排序等。在C++中,可以使用类似上述的位图类来模拟实现位图功能,实现插入、删除和查找等操作。位图的优点是占用空间小、操作高效,但受限于位数范围。原创 2023-10-28 15:12:05 · 638 阅读 · 69 评论 -
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
本文介绍了哈希技术的基本概念、哈希冲突、哈希函数及其解决方法,以及哈希在计算机科学中的应用。通过本文的阅读,读者可以了解到哈希技术的重要性和优势,以及如何使用哈希函数存储、搜索和比较数据。同时,读者也能够了解哈希冲突的原因和解决方法,包括闭散列和开散列等技术手段。最后,本文还介绍了哈希在位图和布隆过滤器等领域的应用,展示了哈希技术在实际问题中的价值和应用前景。原创 2023-10-26 12:12:42 · 2955 阅读 · 74 评论 -
【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
和。unordered_map是一种无序的关联容器,它使用哈希表来存储键值对,并提供高效的插入、查找和删除操作。在本文中,我们将首先介绍unordered_map的基本概念和特点,然后详细讲解其接口和用法。接下来,我们将介绍unordered_set,它是一种无序的集合容器,同样基于哈希表实现。我们将对unordered_set进行简要介绍,并深入探讨其接口和用法。通过学习本文,您将对unordered系列容器有更加清晰的理解,并能够灵活运用它们解决实际问题。下面话不多说,坐稳扶好咱们要开车了😍。原创 2023-10-23 11:54:20 · 1388 阅读 · 59 评论 -
【C++入门到精通】C++入门 —— 红黑树(自平衡二叉搜索树)
红黑树是一种常用的平衡二叉搜索树,具有较好的查找、插入和删除性能。它的特点是节点被标记为红色或黑色,并且满足一定的规则,例如根节点为黑色、每个叶子节点(NIL)都是黑色、不能有连续的两个红色节点等。通过这些规则,红黑树能够保持平衡,使得任意节点到其叶子节点的最长路径不会超过最短路径的两倍。在插入或删除节点时,红黑树可能需要进行旋转操作来维持平衡,但由于它的平衡性相对较弱,因此这些操作通常比较快。原创 2023-10-07 23:29:41 · 466 阅读 · 126 评论 -
【C++入门到精通】C++入门 —— AVL 树(自平衡二叉搜索树)
AVL树是一种自平衡二叉搜索树,可以保证树的任何节点的左子树和右子树的高度差不超过1,从而提供了较好的查找、插入和删除操作的时间复杂度保证。AVL树的核心思想是在每个节点上保存一个平衡因子,表示其左子树高度和右子树高度之差。在进行插入和删除操作时,如果插入或删除后导致树的某个节点的平衡因子的绝对值大于1,就需要进行旋转操作来恢复平衡。AVL树的插入和删除操作的时间复杂度都为O(log n)。AVL树的优点是保证树的平衡性,提供了较好的时间复杂度保证;缺点是在进行插入和删除操作时可能需要花费更多的时间和空间。原创 2023-10-04 20:47:49 · 518 阅读 · 120 评论 -
【C++入门到精通】C++入门 —— set & multiset (STL)
本文介绍了 C++ 中的关联容器 std::set 和 std::multiset。std::set 是有序且元素唯一的集合,而 std::multiset 允许存储重复的元素。文章详细介绍了它们的使用方法、构造函数、迭代器以及容量与元素访问函数。此外,文章还对比了它们的相同点和不同点。最后,根据具体需求给出了选择 std::set 还是 std::multiset 的建议。读者可以根据自己的实际情况来选择适合的容器类型。原创 2023-09-29 16:34:02 · 1439 阅读 · 108 评论 -
【C++入门到精通】C++入门 —— map & multimap (STL)
这篇文章的目录包含了std::map和std::multimap的简介以及使用方法,并将它们进行了比较。先介绍了std::map的基本概念,包括键值对的有序存储和访问能力,以及std::map的模板参数、构造函数、迭代器、容量和元素访问函数等内容。然后,文章提供了std::multimap的简介,强调了它允许存储重复键的特点。最后,文章通过比较std::map和std::multimap的特点与用途,帮助读者理解它们之间的区别和选择合适的容器。这篇文章将为读者提供有关std::map和std::multim原创 2023-09-29 04:12:30 · 742 阅读 · 78 评论 -
【C++入门到精通】C++入门 ——搜索二叉树(二叉树进阶)
本文介绍了搜索二叉树的基本概念、基本操作和实现方法,并探讨了搜索二叉树的应用和性能分析。搜索二叉树是一种用于存储和检索数据的常用数据结构,可以快速进行搜索、插入和删除操作。文章提供了基于非递归方式的代码示例,并提到了递归实现的方法。搜索二叉树可以应用于K模型和KV模型,其中K模型是只存储键的数据模型,而KV模型使用键值对来存储和访问数据。文章指出搜索二叉树的性能取决于树的平衡程度,平衡二叉树的变种可以帮助保持树的平衡性。了解搜索二叉树的基本概念和性能分析有助于提高数据操作效率和合理选择数据结构。原创 2023-09-10 22:57:17 · 885 阅读 · 66 评论 -
【C++入门到精通】C++入门 —— 多态(抽象类和虚函数的魅力)
多态性是面向对象编程中的一个重要概念,它通过虚函数和动态绑定实现了统一处理不同类型对象的能力,提高了代码的灵活性和可扩展性。多态性的核心思想是将关注点放在接口和行为上,隐藏对象的具体实现细节,提供一致的接口供外部使用。原创 2023-08-27 21:32:26 · 1269 阅读 · 102 评论 -
【C++入门到精通】C++入门 —— 继承(基类、派生类和多态性)
这篇文章讨论了继承的概念、定义和使用,并涵盖了基类和派生类对象赋值转换、继承中的作用域、派生类的默认成员函数、继承与友元、继承与静态成员等相关主题。此外,文章还介绍了复杂的菱形继承和菱形虚拟继承,并对继承和组合进行了总结和反思。最后,给出了一些笔试和面试相关的问题。整体而言,这篇文章全面而详细地阐述了继承在面向对象编程中的各个方面,并提供了对该主题的深入理解和思考的机会。原创 2023-08-25 21:09:23 · 1888 阅读 · 51 评论 -
【C++入门到精通】C++入门 —— priority_queue(STL)优先队列
本文介绍了priority_queue的概念、特点和使用方法。priority_queue是C++标准库中的一个容器适配器,实现了优先队列的数据结构。优先队列中的元素按照优先级进行排列,可以高效地访问和删除具有最高优先级的元素。我们讨论了priority_queue的基本操作,如插入、删除、访问和判断队列是否为空,以及底层结构的实现原理。此外,还介绍了在priority_queue中使用的仿函数,它决定了元素之间的排序规则。通过了解priority_queue的相关知识,读者可以更好地应用它来解决实际编程中原创 2023-08-22 08:00:00 · 7754 阅读 · 8 评论 -
【C++入门到精通】C++入门 —— 模版(template)
C++中的模板是一种强大的工具,可以实现泛型编程和代码复用。模板具有通用性、静态类型检查和高性能等优点,可以提高代码的复用性和执行效率。然而,模板的复杂性、编译时间长以及可读性和调试困难等缺点需要在使用时进行考虑。总的来说,模板是一种有利于开发灵活和高效代码的编程技术。原创 2023-08-23 18:55:06 · 861 阅读 · 52 评论 -
【C++入门到精通】C++入门 —— deque(STL)
本文对deque(双端队列)进行了全面的介绍和讨论。首先,对deque进行了简介,包括其概念和特点。接着,详细介绍了deque的使用方法,包括基本操作(增、删、查、改)和底层结构。然后,列举了deque的一些缺陷。最后,解释了为什么选择deque作为stack和queue的底层默认容器,并分析了其优势和缺点。deque作为一个高效、灵活的数据结构,在栈和队列的实现中扮演着重要角色,但也需要根据具体需求选择最合适的容器。本文旨在帮助读者深入了解deque,并在实际应用中做出明智的选择。原创 2023-08-21 14:51:20 · 811 阅读 · 34 评论 -
【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)
stack是一种后进先出(LIFO)的数据结构,它的特点是最后添加的元素将首先被移除。它是一种容器适配器,使用底层容器来存储元素。默认情况下,stack使用std::deque作为底层容器。你可以使用push(element)函数将元素添加到栈顶,使用pop()函数从栈顶移除元素,使用top()函数访问栈顶元素,使用empty()函数检查栈是否为空,使用size()函数获取栈的大小。stack不支持索引访问和迭代器,大小是可变的。原创 2023-08-20 22:20:49 · 924 阅读 · 45 评论 -
【C++入门到精通】C++入门 —— list (STL)
本文首先介绍了list的概念和特点。list是C++中的容器之一,采用双向链表存储元素,可以在O(1)时间内插入和删除操作,但访问效率较低。接下来,文章详细探讨了list的使用方式。包括如何构造list对象,并介绍了常见的操作方法,如增加、删除、查找和修改list中的元素。最后,文章进行了list与vector的对比。分析了它们在数据存储方式、动态性、访问效率、插入和删除操作以及内存使用等方面的差异。这有助于读者根据实际需求选择合适的容器。通过本文,读者可以深入了解list的特性和用法,以及与其原创 2023-08-14 23:00:39 · 2310 阅读 · 73 评论 -
【C++入门到精通】C++入门 —— vector (STL)
本文首先介绍了C++中的std::vector容器,包括其概念和特点。接着详细讲解了vector的使用方法,包括构造函数和处理空间增长问题的resize和reserve函数。其次,介绍了vector的增删查改操作,其中强调了使用operator[]函数来访问和修改元素。最后,探讨了vector中迭代器失效的问题以及如何避免迭代器失效。通过本文,读者可以全面了解vector容器的基本知识和常用操作,以及如何安全地使用迭代器。原创 2023-08-12 12:34:00 · 4349 阅读 · 56 评论 -
【C++入门到精通】C++入门 —— 深浅拷贝函数
通过阅读本文,读者将了解到拷贝函数的概念和使用方法。特别是在处理包含指针成员的类时,了解如何实现浅拷贝和深拷贝的拷贝构造函数非常重要。浅拷贝只复制指针的值,而深拷贝还要复制指针指向的数据,以确保每个对象拥有独立的内存空间。原创 2023-08-10 11:01:08 · 423 阅读 · 35 评论