![](https://img-blog.csdnimg.cn/direct/29978aed3451441caff3b9dcaca1ed27.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++指南
文章平均质量分 93
C++学习笔记
lyyyyrics
lyrics
展开
-
stack和queue的模拟实现
通过对 C++ 中 stack 和 queue 的模拟实现,我们深入了解了容器适配器的工作原理和优势。这些适配器通过封装底层容器,提供了简洁而统一的接口,使得数据结构的操作变得更加直观和便捷。我们的模拟实现展示了如何利用已有的容器类来构建自定义的数据结构,同时也强调了代码复用和隐藏实现细节的重要性。在实际开发中,选择合适的数据结构和容器适配器能够显著提升代码的可读性、可维护性和性能。因此,熟练掌握和灵活运用这些基础工具,是每一个 C++ 开发者必备的技能。原创 2024-06-04 22:10:45 · 1522 阅读 · 76 评论 -
C++ List完全指南:使用方法与自定义实现
根据我们上面说的,我们先创建一个类来存放节点,由于我们要访问这个类的成员,所以干脆我们直接把这个类写成结构体,因为在C++中结构体默认是public。T _data;上面就是我们定义的一个结构体,忘了说了,在这之前别忘了用一个命名空间将其隔离开,避免和库里的冲突了。在本文中,我们深入探讨了C++中std::list的使用以及如何通过模拟实现基本的链表功能。我们详细介绍了std::list的常见操作,如元素的插入、删除、访问和遍历,并解释了这些操作在底层是如何实现的。原创 2024-05-20 10:33:32 · 870 阅读 · 27 评论 -
从零开始:实现你的第一个 C++ Vector
通过这篇博客,我们深入探讨了如何模拟实现 C++ 中的 std::vector 容器。从动态内存管理到基本功能的实现,我们逐步构建了一个简单而功能强大的向量类。在这个过程中,我们学习了动态内存分配、指针操作、拷贝控制等 C++ 核心概念,并将它们应用于实际的容器实现中。通过手动实现 push_back、pop_back、resize 等函数,我们深入了解了向量的内部工作原理。这篇博客不仅仅是一个容器的模拟实现,更是一个 C++ 学习的过程。原创 2024-05-16 23:52:00 · 778 阅读 · 18 评论 -
C++从入门到精通---模版
class 类模板名// 类内成员定义当模板被介绍到C++中时,它们彻底改变了编程的方式。函数模板和类模板为我们提供了一种通用的方法来编写代码,使得我们可以编写更加灵活、可重用的程序。通过使用模板,我们可以编写与特定类型无关的代码,从而提高了代码的灵活性和可维护性。函数模板允许我们编写可以处理多种类型的函数,而类模板则允许我们创建可以处理多种类型数据的类。在编写模板时,我们可以利用C++的强大类型系统来确保类型安全,并通过模板参数推断简化代码。原创 2024-05-08 22:00:38 · 864 阅读 · 22 评论 -
从入门到精通C++之类和对象(续)
通过本文的介绍,我们深入探讨了几个编程中的关键概念:友元、初始化列表、静态成员变量以及内部类。友元使得类之间的访问更加灵活,但也需要慎重使用以保持封装性;初始化列表能够简化对象的构造过程,提高代码效率;静态成员变量共享于类的所有对象,是实现全局数据共享和类特性存储的有效方式;内部类则可以在一个类的内部定义另一个类,便于组织和封装相关的功能。深入理解这些概念对于成为一名优秀的程序员至关重要。熟练掌握它们不仅可以提高代码的质量和效率,还能够拓展我们的编程思维,使我们更加灵活地应对不同的问题和挑战。原创 2024-04-17 19:40:55 · 1219 阅读 · 19 评论 -
C++入门----类和对象以及几个关键字的使用
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。在class中的成员变量可以随意访问。原创 2024-04-02 15:02:23 · 814 阅读 · 6 评论 -
从入门到精通C++(动态内存管理)
在C++中,动态内存管理是一项强大而又易于出错的功能。通过使用new和delete或者更现代化的智能指针,我们可以在程序运行时分配和释放内存。然而,这种灵活性也伴随着责任,需要我们谨慎地管理内存,以避免内存泄漏和悬空指针等问题。在编写C++程序时,应该始终牢记内存管理的原则:合理使用动态内存分配:只在必要时才使用动态内存分配,尽量避免内存分配与释放频繁发生,以提高程序效率和性能。原创 2024-04-19 12:35:28 · 733 阅读 · 5 评论 -
深入理解C++中的Vector容器:用容器构建高效程序
在C++语言的库中包含有公共数据结构的实现,C++的这个部分内容就是众所周知的STL(标准模版库),vector就是标准模板库中的数据结构之一。函数声明说明vector()无参构造构造并初始化n个val拷贝构造使用迭代器进行初始化构造无参构造构造n个val拷贝构造i++)迭代器构造i++)在这篇关于“容器vector”的博客中,我们深入探讨了 C++ 中这个强大的数据结构。原创 2024-05-12 22:45:45 · 1045 阅读 · 18 评论 -
C++(六个默认成员函数)
默认构造函数(Default Constructor):如果我们没有定义任何构造函数,编译器将会生成一个默认构造函数。默认构造函数不接受任何参数,并且执行成员变量的默认初始化。在很多情况下,这可能是合适的,但如果类的成员需要特定的初始化值,可能需要显式定义构造函数。析构函数(Destructor):如果我们没有提供析构函数,编译器会生成一个默认的析构函数。默认析构函数会释放对象所占用的内存,如果对象包含有指针成员,可能不会正确地释放内存或执行其他必要的清理工作。原创 2024-04-10 09:24:52 · 857 阅读 · 11 评论 -
C++(类和对象)
注意看我上面的批注,Print函数没有传递参数,实际是传递了d1的地址,然后用一个被const修饰的指针this来接收,最后用this指针对d1中存的值进行访问,注意这里this指针在声明函数的时候是不能写出来的,但在函数内部可以显式进行用的。我们不妨猜想一下,每个成员变量的大小是不同的,但是如果每个对象的成员函数也存一份的话,这样会产生巨大的开销,每个成员变量调用的都是相同的函数,所以只需要将成员函数在公共区域存一份即可,然后每个成员变量再调用时,可以直接根据地址进行访问即可。原创 2024-04-06 00:12:44 · 657 阅读 · 9 评论 -
C++(运算符重载+赋值拷贝函数+日期类的书写)
在本文中,我们深入探讨了运算符重载和赋值拷贝函数在C++中的应用。通过运算符重载,我们可以为自定义类型定义各种操作,使得代码更加清晰和易读。而赋值拷贝函数则在对象拷贝和赋值过程中起到了至关重要的作用,确保对象之间的正确复制和管理。通过深入理解和熟练应用这些概念,我们可以写出更加健壮和高效的代码。在实践中,我们需要注意运算符重载和赋值拷贝函数的使用场景和规范,以避免潜在的错误和性能问题。同时,对于特定的项目和需求,我们也可以进一步扩展和定制这些功能,以满足更复杂的应用场景。原创 2024-04-16 12:55:42 · 823 阅读 · 18 评论 -
从零开始:C++ String类的模拟实现
在这篇博客中,我们从零开始,逐步实现了一个自定义的 C++ String 类。通过这个过程,我们不仅深入了解了字符串操作的内部工作原理,还掌握了许多 C++ 编程的重要概念和技巧。类的基本结构我们定义了 String 类的基本结构,包括私有成员变量和公共成员函数。我们了解了如何封装数据,保护类的内部实现细节,并提供一个干净的公共接口。构造函数和析构函数我们实现了默认构造函数、拷贝构造函数、移动构造函数和析构函数,确保我们的 String 类能够正确地初始化、复制、移动和销毁对象。原创 2024-05-14 23:16:50 · 1326 阅读 · 36 评论 -
探索C++的string:从基础到深入
在本博客中,我们深入探讨了C++中的string类,这是标准库中用于处理字符串的重要工具。我们首先介绍了string类的基本概念和使用方法,包括创建、初始化、访问字符、以及与其他string对象的比较等。接着,我们探讨了string类的各种成员函数,例如append、substr、find等,这些函数提供了丰富的字符串操作功能,使得处理字符串变得更加方便和高效。此外,我们还讨论了string类与C风格字符串之间的区别,以及在实际开发中应该如何选择使用。原创 2024-05-09 14:38:02 · 773 阅读 · 12 评论