![](https://img-blog.csdnimg.cn/e912c0f7f5f24297b15e7b0fd03e8428.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
文章平均质量分 94
C++学习
马尔科686
这个作者很懒,什么都没留下…
展开
-
【C++】vector (vector的介绍及使用)
vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。原创 2023-01-13 06:14:35 · 528 阅读 · 0 评论 -
【C++】string (string类的常用接口 string类对象的容量操作 string类对象的访问及遍历操作 string类对象的修改操作)
resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个,不同的是当字符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, char c)用字符c来填充多出的元素空间。reserve影响的是capacity,只影响空间不会动数据,resize会改变stering的长度,把string的长度改变到n,并且resize也会影响capacity。:将有效字符的个数该成n个,多出的空间用字符c填充。原创 2023-01-03 01:48:13 · 722 阅读 · 1 评论 -
【C++】模板初阶(泛型编程 函数模板 函数模板概念 函数模板格式 函数模板的原理 函数模板的实例化 模板参数的匹配原则 类模板 类模板的定义格式 类模板的实例化)
template < class T1 , class T2 , . . . , class Tn > class 类模板名 {// 类内成员定义 };// .... // 扩容 _a [ _top ++ ] = x;T * _a;int _top;};原创 2022-12-13 21:14:05 · 89 阅读 · 3 评论 -
【C++】内存管理(C/C++内存分布 C语言中动态内存管理方式 C++中动态内存管理 operator new与operator delete函数 new和delete的实现原理 定位new表达式)
;free(p2);return 0;}C++的new和delete相比于malloc和free,如果申请的是自定义类型,除了空间管理,还会调用构造函数和析构函数。int _val;} };}new其实就是给自定义类型准备的。};return 0;}new了10个delete了一个,运行发现程序报错。原创 2022-12-13 01:00:04 · 103 阅读 · 10 评论 -
【C++】类和对象(下)(再谈构造函数 初始化列表 explicit关键字 static成员 特性 友元 友元函数 友元类 内部类 匿名对象)
如果一个类定义在另一个类的内部,这个内部类就叫做内部类。内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。构造函数不仅可以构造与初始化对象,对于单个参数或者除第一个参数无默认值其余均有默认值的构造函数,还具有类型转换的作用。我们之前学习构造函数的时候,调用构造之后对象中就已经有了一个初始值,但不能说它是对对象像成员变量的初始化,A和B是两个独立的类,真正影响的是,B类的访问受A的类域和访问限定符的限制。成员变量,属于类,并且是类的每一个对象共享的。初始化的时候在类的外面初始。原创 2022-11-26 23:52:26 · 807 阅读 · 7 评论 -
【C++】类和对象(中)(类的6个默认成员函数 构造函数 概念 特性 析构函数 概念 特性 拷贝构造函数 赋值运算符重载 const成员函)
内置类型就是语言提供的数据类型,如:int/char/任意类型指针…,自定义类型就是我们使用class/struct/union等自己定义的类型,看看下面的程序,就会发现编译器生成默认的构造函数会对自定类型成员_t调用的它的默认成员函数。编译器会生成默认构造函数,编译器对内置类型不处理,自定义类型会调用它的默认构造。原创 2022-10-11 14:16:09 · 98 阅读 · 1 评论 -
【C++】类和对象(上)(1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装5.类的作用域 6.类的实例化7.类对象模型8.this指针)
/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体。里面主要放成员函数和成员变量,类中的变量称为类的属性或者成员变量,类中的函数称为类的方法,或者成员函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。Stack.h# pragma once //声明和定义分离 class Stack //类型 {public :private :int * a;原创 2022-10-07 00:48:21 · 284 阅读 · 8 评论 -
【C++】C++基础 (引用 内联函数 auto关键字 基于范围的for循环 指针空值---nullptr)
具体打印的时候打印的不是原来的变量,而是打印的产生的临时变量的值,语法规定临时变量具有常兴(不能修改),所以回到上面的问题,ri引用的是d吗?这里m是cc的别名,n是dd的别名,没有引用的话就是传值,那m是cc的拷贝,n是dd的拷贝,m和n交换不影响cc和dd,如果用引用的话,m和n的交换就是cc和dd的交换,目的就很容易达到。内联函数就是在一个函数前面加个inline,inline是C++里新加的一个关键字,内联函数的特点是在调用它的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。原创 2022-10-05 20:02:37 · 737 阅读 · 1 评论 -
【C++】C++基础 (C++关键字 命名空间 输入输出 缺省参数 函数重载)
前言,我们C++这门语言,兼容C语言,C++是C语言的升级。早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应 头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持格式,后续编译器已不支持,因此推荐使用 < iostream > +std的方式。原创 2022-10-04 01:08:06 · 442 阅读 · 0 评论