C++
文章平均质量分 95
NiNi_suanfa
拥有足够深的理解 才能产出更深刻的内容
展开
-
【数据结构/C++】位图
哈希思想的有应用,位图的概念,位图的模拟实现,布隆过滤器,布隆过滤器的模拟实现,经典面试题原创 2024-07-05 13:23:18 · 1218 阅读 · 0 评论 -
【C++】string类 详细讲解【string接口、迭代器、容量相关操作、npos、string类中运算符重载、编码、Vs 和 g++ 下 string结构的说明等讲解】
C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。string类的文档介绍字符序列迭代器才是容器访问的主流形态 【通用性】迭代器都是左闭右开,begin 左闭,end 右开(最后一个位置的下一个位置)it :本质 保护迭代器指向的数据 * it不能修改constiterator it :保护的选代器本身不能修改 it不能修改。原创 2023-12-20 23:35:51 · 3561 阅读 · 19 评论 -
【C++】日期类的实现
因为都只是判断,并不修改,所以都加const成员函数的一大特点:参数中含有隐藏的 this指针//隐藏的this指针out原创 2023-12-04 17:22:57 · 214 阅读 · 9 评论 -
【C++】STL简介(了解)【STL的概念,STL的历史缘由,STL六大组件、STL的重要性、以及如何学习STL、STL的缺陷的讲解】
STL ( standard template libaray - 标准模板库 ):是C++标准库 的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。原创 2023-12-04 17:19:47 · 379 阅读 · 15 评论 -
【C++】C/C++内存分布【C/C++内存管理方式详解以及new/delete、operator new/operator delete、malloc/free 三者之间的关系讲解内存泄漏问题】
【说明】栈:又叫堆栈 –非静态局部变量函数参数返回值等等临时变量,栈是向下增长的。函数建立栈帧,存储临时变量内存映射段“:是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(Linux课程如果没学到这块,现在只需要了解一下)堆:用于程序运行时动态内存分配,堆是可以上增长的。数据段【静态区】:存储全局数据和静态数据。代码段【常量区】可执行的代码只读数据(包含 常量)常量区,修改会报错常量区存放 二进制的代码( 指令 cpu才能看的懂 )原创 2023-11-30 10:17:38 · 533 阅读 · 11 评论 -
【C++】模板初阶 【 深入浅出理解 模板 】
如何实现一个通用的交换函数呢?......使用函数重载虽然可以实现,但是有一下几个不好的地方:重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数代码的可维护性比较低,一个出错可能所有的重载均出错那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢?如果在C++中,也能够存在这样一个模具,通过给这个模具中 填充不同材料(类型),来获得不同材料的铸件**(即生成具体类型的代码)**,那将会节省许多头发。原创 2023-11-18 17:04:33 · 299 阅读 · 27 评论 -
【C++】类与对象 III 【 深入浅出理解 类与对象 】
临时变量具有常属性( 不可修改,要加const )。内置类型 整形和浮点形(意义非常相近,表示数字大小) 隐式互相转换int和指针 只能显式转【强制类型转换】内置类型 —隐式转换—> 自定义类型:【 类型转换都是通过临时变量做中间值,由构造函数来支持 】能支持这个转换,就看类里面有没有相对应类型的单参数/ 支持传一个参数/多参数带缺省(也可以)的半缺省( 这些都看实际具体的情况是否有同对应类型的参数条件 )构造函数支持转换。若不想让隐式类型转换发生,C++引入入新关键字explicit。原创 2023-11-18 17:01:23 · 298 阅读 · 14 评论 -
【C++】类与对象 II 【深入浅出 万字详解】
没有初始化会产生什么问题?没有初始化了, 会造成 野指针、随机值 问题初始化容易忘class Datepublic:void Init(int year, int month, int day) //函数初始化_day = day;int _month;int _day;d1.Print();Date d2;d2.Print();return 0;C语言中,每次都要初始化一下。原创 2023-11-18 16:59:43 · 197 阅读 · 21 评论 -
【C++】类与对象 I
C语言面向过程关注的是过程。分析出求解问题的步骤,通过函数调用逐步解决问题。用洗衣服来做个例子:C++基于面向对象关注的是对象。将一件事情拆分成不同的对象,靠对象之间的交互完成。整个过程主要是:人、衣服、洗衣粉、洗衣机四个对象之间交互完成的,人不需要关心洗衣机具体是如何洗衣服的,是如何甩干的。对象具体怎么完成的,那是它的事情。C语言结构体:只能定义变量由于结构体中只能定义变量,导致函数只能在结构体外定义导致数据和方法分离,所以必须带参数 才能访问在结构体中定义的变量。原创 2023-11-14 23:00:49 · 723 阅读 · 16 评论 -
【C++】C++的介绍及其发展史
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。C++是基于C语言而产生的。原创 2023-11-12 14:40:14 · 462 阅读 · 20 评论 -
【C++】C++入门详解 II【深入浅出 C++入门 这一篇文章就够了】
引用概念上定义一个变量的别名,指针存储一个变量地址。引用在定义时必须初始化,指针没有要求(则容易出现 野指针问题)引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个 同类型 实体没有NULL引用,但有NULL指针[ 3、4点提现:引用更安全,但也不是绝对的安全 ]在sizeof 中含义不同引用结果为引用类型的大小,但指针始终是地址空间 所占字节个数(32位平台下占4个字节)引用自加即引用的实体增加1指针自加即指针向后偏移一个类型的大小有多级指针,但是没有多级引用。原创 2023-11-12 14:30:01 · 188 阅读 · 7 评论 -
【C++】C++入门详解 I【C++入门 这一篇文章就够了】
C++ 就是在对 C语言使用中遇到的缺陷与不足的改进。C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C++学习有一定的帮助。补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面、IO方面、函数方面、指针方面、宏方面等。为后续类和对象学习打基础namespace[关键字] + 命名空间的名字 + { } +( { } 里面 )命名空间的成员一般开发中是用项目名字做命名空间名。命名空间中可以定义变量。原创 2023-11-12 14:29:24 · 209 阅读 · 7 评论