
C++
文章平均质量分 97
更新C++相关内容,里面有大量代码实例。
萧瑟其中~
向上
展开
-
C++11:lambda表达式和包装器(function bind)
而是function拿到该函数的位置,并将其存储到function的成员变量中,在调用函数时,先调function中的operator(),再调该函数。placeholder有占位符的意思,该命名空间中有许多的占位符,_1可以替代传入的可调用函数的第一个参数,_2可以替代传入的可调用函数的第二个参数,_N可以替代传入的可调用函数的第N个参数。一般情况下,排序的结果是升序的。下面代码中,先定义了名为Rate的类,重载了()函数,使用Rate对象r1,使用类似函数的操作,完成对利率的计算,实际上。原创 2024-09-16 10:57:02 · 1160 阅读 · 3 评论 -
C++11: 智能指针(unique_ptr,shared_ptr和weak_ptr的使用及简单实现)
内存泄漏是指在程序运行过程中,由于疏忽或错误而未能释放不再使用的内存,导致这部分内存得不到回收。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,从而造成了内存的浪费。内存使用量增加:随着内存泄漏的累积,程序占用的内存会越来越多。程序性能下降:频繁的内存分配和释放可能导致内存碎片化,进而影响程序性能。系统资源耗尽:长时间运行的程序可能会耗尽系统内存,特别是对于操作系统游戏服务器数据库系统和客户端应用程序等关键任务程序,会导致响应越来越满,最终卡死。原创 2024-09-06 12:51:24 · 1153 阅读 · 0 评论 -
C++11:右值引用、移动语义和完美转发
C++11作为一次重大的更新,引入了许多革命性的特性,其中之一便是右值引用和移动语义。本文将深入探讨其中引入的右值及其相关概念,帮助读者更好地理解这一特性,从而在编程实践中更有效地利用它。经过长篇累牍的讲解,相信大家对右值引用和移动语义的概念有了初步的认识。通过对这些特性的学习,我们可以编写出更加高效和精炼的代码。如果亲自上手敲写上述示例代码,会有更加深刻的理解。创作不易,希望这篇文章能给你带来启发和帮助,如果喜欢这篇文章,请留下你的三连,你的支持的我最大的动力!!!原创 2024-08-20 22:28:15 · 1190 阅读 · 0 评论 -
C++ set、map、multiset和multimap容器
本文将重点探几种种基于树形结构的关联式容器set、multiset、map和multimap。这这四种容器在C++标准库中占据着重要地位,它们不仅提供了强大的数据存储和检索功能,还各自具备独特的特性,如自动排序、键值对的存储以及多键值的支持。接下来,我们将详细介绍他们的特性和用法,帮助读者更好地理解和运用树形结构关联式容器。集合是按照特定顺序存储唯一元素的容器。在set中,元素的值也标识它(值本身就是键,类型为T),并且每个值必须是唯一的。set中元素的值在容器中。原创 2024-07-30 22:21:29 · 1008 阅读 · 0 评论 -
C++ 多态第一弹
本文讲解C++三大特性之一多态。多态是C++的灵魂所在,它使得程序设计更加抽象、灵活,能够处理更为复杂的问题。接下来,让我们一起揭开多态的神秘面纱,探索它的应用。被virtual修饰的类成员函数称为虚函数。public:两个函数在同一个作用域下。函数名相同,参数类型,个数不同。两个函数分别在基类和派生类的作用域中。两个函数必须是虚函数。函数名,参数,返回值都必须相同(除了两个例外)。两个函数分别在基类和派生类的作用域中。函数名相同即可。原创 2024-07-15 19:37:42 · 1115 阅读 · 0 评论 -
C++ 继承第一弹
本篇文章主要讲解C++的继承。继承是C++的三大特性之一,重要程度不必多说。本文配有代码示例进行细致讲解,内容丰富。继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。继承定义的格式如下,在派生类后面加上冒号,再添加继承方式和基类。原创 2024-07-11 17:50:33 · 744 阅读 · 0 评论 -
C++ 模版进阶
本篇文章主要讲解的是模版进阶的内容,其中有模版更深入的应用,内容丰富,干货多多!一个程序(项目)有若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。模版复用代码,节省资源,提高开发效率。增强代码的灵活性。模版会导致代码膨胀问题,使得编译时间变长。出现模版编译错误时,错误信息非常凌乱,难以定位错误进行纠正。通过这篇文章,对于模版的使用有了更深入的了解,如果还有某些地方不够熟悉,可以自己动手敲敲代码。原创 2024-07-07 18:23:51 · 869 阅读 · 0 评论 -
C++ string字符串的使用和简单模拟实现
本文讲解string串的使用和一些简单的模拟实现,内容丰富,干货多多!C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数和字符串是分离的。不符合面向对象程序设计的思想,而且底层空间需要用户自己管理,如果不细心,容易访问越界。所以C++标准库以string类来表示字符串,更加简单,方便。字符串是表示字符序列的对象。标准string类通过类似于标准字节容器的接口提供了对此类对象的支持,但添加了专门设计用于操作单字节字符串的特性。原创 2024-06-15 22:59:05 · 943 阅读 · 0 评论 -
C++ list链表的使用和简单模拟实现
这篇文章讲述常用容器list的使用和一些重要部分的简单模拟实现,仅仅只是了解一些实现方法。内容丰富,干货多多。list是序列容器,允许在序列内的任何位置进行常量时间的插入和删除操作,以及两个方向的迭代。列表容器被实现为双链表;双链表中每个元素存储在互不相关的几点钟,在节点中通过指针指向其前一个元素和后一个元素。它们与forward_list非常相似:主要区别在于forward_list对象是单链表,因此它们只能向前迭代,让其更简单高效。原创 2024-06-05 21:51:28 · 1000 阅读 · 3 评论 -
C++ vector的使用和简单模拟实现(超级详细!!!)
今天将开启对C++STL的学习,STL作为强大的模版库,十分值得我们学习!在此途中,提升自己的C++代码能力。vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。因为vector内部实现没有使用具体类型,而是给出模版,所以实例化一个vector变量时需要给出具体类型。记得包含头文件。原创 2024-05-29 23:36:11 · 1164 阅读 · 2 评论 -
C++类和对象第三弹(运算符重载,赋值运算符重载,取地址操作符重载,日期类的实现)
本文主要内容是关于类中生成的三个默认成员函数,还有日期类的实现。干货满满,一起学起来吧!实现一个日期类,先创建三个文件Date.h,Date.cpp和test.cpp。Date.h文件存放类的声明部分。Date.cpp存放类成员函数的实现部分。test.cpp用于写测试代码通过日期类的实现,对C++中类和对象的了解更加深入,开始上手C++。学习编程语言需要不断的练习,多多重复,百炼成钢!创作不易,希望这篇文章能给你带来启发和帮助,如果喜欢这篇文章,请留下你的三连,你的支持的我最大的动力!!!原创 2024-04-21 18:30:18 · 928 阅读 · 0 评论 -
C++类和对象第一弹
类和对象是C++区分于C语言的开始,由面向过程编程走向面向对象编程,更加符合人们对事物的认知,可以处理更复杂的问题。本篇文章将一步步带你了解类和对象的核心,一起学起来吧!上面的结构体的定义,C++中更多使用class来替代。// 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。原创 2024-04-10 11:33:01 · 1022 阅读 · 0 评论 -
C++入门语法(命名空间&缺省函数&函数重载&引用&内联函数&nullptr)
这一篇文章开始了我与C++这门语言的相遇,我会持续更新有关C++的文章,既是我对学习C++之后的复习与总结,也是一种分享知识的方式。这篇的主要内容围绕的是C++入门语法讲解,许多语法都是本博士C++之父,对C语言的改进。C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想。原创 2024-04-06 23:08:23 · 891 阅读 · 0 评论 -
C++初识内存管理和模版
本文今天要浅浅的讲解C++内存管理和模板,关于C++是如何进行动态管理内存,C++中的模板的作用是什么,类型有哪些。虽然比较粗浅,但这是每个小伙伴学C++的必经之路,一起学起来吧!int main()// new/delete 和 malloc/free最大区别是// new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;原创 2024-04-25 20:10:16 · 959 阅读 · 1 评论 -
C++类和对象第二弹(构造,析构和拷贝构造函数)
本文主要讲解类中构造函数、析构函数和拷贝构造函数。关于这三个类中默认成员函数的知识点很多,有许多代码示例,干货满满!这篇文章对三个默认成员函数进行了详细的解析,看完的小伙伴不要忘记亲自上手写代码,进行练习,多多重复,百炼成钢!创作不易,希望这篇文章能给你带来启发和帮助,如果喜欢这篇文章,请留下你的三连,你的支持的我最大的动力!!!原创 2024-04-16 20:11:11 · 793 阅读 · 0 评论