![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 76
不知名的新手
这个作者很懒,什么都没留下…
展开
-
vector的实现
std::vector的核心框架接口的模拟实现(name)::vectornamespace H { template<class T> class vector {public: typedef T* iterator; typedef const T* const_iterator; iterator begin() { return _start; } iterator end() { return _finish; } const_iterator cbegin()原创 2022-05-04 18:43:01 · 189 阅读 · 0 评论 -
C++的深度学习(9)
目录vectorvector的介绍vector的使用vector的定义vector iterator 的使用vector 空间增长问题vector 增删查改vector 迭代器失效问题迭代器失效解决办法vector深度剖析使用memcpy拷贝问题动态二维数组理解vector vector的介绍1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标..原创 2022-05-04 16:58:16 · 344 阅读 · 0 评论 -
String类的实现
目录.h文件.cpp文件.h文件#pragma once#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <assert.h>#include <string.h>using std::ostream;using std::istream;namespace stringss{class string{ friend ostream& operator&l原创 2022-05-02 16:30:53 · 609 阅读 · 0 评论 -
C++的深度学习(8)
string类C语言中的字符串C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。 标准库中的string类1. 字符串是表示字符序列的类 2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。 3. string类是使用char(即作为它的字符原创 2022-05-02 11:01:24 · 798 阅读 · 0 评论 -
C++的深度学习(7)
目录STL1. 什么是STL2. STL的版本3. STL的六大组件4.STL的缺陷 STL1. 什么是STL STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。2. STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意 运用、拷贝.原创 2022-04-24 17:50:22 · 377 阅读 · 0 评论 -
C++的深度学习(6)
模板泛型编程 //实现一个通用的交换函数void Swap(int& left, int& right) { int temp = left; left = right; right = temp; }void Swap(double& left, double& right) { double temp = left; left = right; right = temp; }void Swap(char& left, char&am原创 2022-04-21 12:36:19 · 575 阅读 · 0 评论 -
C++的深度学习(3)
目录引用引用特性引用的使用场景传值、传引用效率比较引用和指针的区别 引用和指针的不同点:内联函数特性宏的优缺点?C++有哪些技术替代宏?auto关键字(C++11)auto的使用细则auto不能推导的场景基于范围的for循环(C++11)范围for的语法范围for的使用条件指针空值nullptr(C++11)引用引用:引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变...原创 2022-04-13 11:54:10 · 1666 阅读 · 0 评论 -
C++的深度学习(4)
类与对象类的定义C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。class className{ // 类体:由成员函数和成员变量组成};class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。 类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。 类的两种定义方式: 1. 声明和定义全部放在类体中,需要注意:成员函数如果原创 2022-04-18 16:10:01 · 1762 阅读 · 0 评论 -
C++中的函数重载问题
C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的 形参列表(参数个数 或 类型 或 顺序)必须不同为什么C++支持函数重载,而C语言不支持函数重载呢?在C/C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。 从源代码到可执行程序的过程(1)源代码.c文件先经过预处理器,生成一个中间文件.i文件(2).i文件经过编译生成汇编.s文件(3).s的汇编文件经过汇编器生成.o的目标文件(4).o的目标文件经过链接器生成.elf原创 2022-04-11 18:35:21 · 433 阅读 · 0 评论 -
C++的深度学习(2)
目录命名空间命名空间定义命名空间使用C++输入&输出缺省参数缺省参数分类函数重载extern “C”命名空间 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字 污染,namespace关键字的出现就是针对这种问题的。 命名空间定义namespace关键字+命名空间的名字+{命名空间的成员}原创 2022-04-11 13:01:24 · 1453 阅读 · 0 评论 -
C++的深度学习(1)
什么是C++?C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计.简单来说C++面向既然原创 2022-04-11 11:53:48 · 5541 阅读 · 0 评论 -
C++的深度学习(5)
目录C/C++内存分布C语言中动态内存管理方式malloc/calloc/realloc的区别?malloc是怎么实现的:C++内存管理方式new和delete操作自定义类型operator new与operator delete函数new和delete的实现原理malloc/free和new/delete的区别什么是内存泄漏,内存泄漏的危害内存泄漏分类如何检测内存泄漏如何避免内存泄漏如何一次在堆上申请4G的内存?C/C++内存...原创 2022-04-20 12:31:28 · 1369 阅读 · 0 评论