随笔分类 -  C++

C++相关知识点记录
C++ Note 继承指向 (多态)
摘要:引自:https://blog.csdn.net/baidu_35679960/article/details/80812527 引自:https://blog.csdn.net/qq_21989927/article/details/111226696 引自:https://www.runoob. 阅读全文

posted @ 2024-04-09 10:21 廿陆 阅读(8) 评论(0) 推荐(0) 编辑

C++ try throw catch
摘要:基本思想: 函数 A 在执行过程中发现异常时可以不加处理,而只是“拋出一个异常”给 A 的调用者,假定为函数 B。 拋出异常而不加处理会导致函数 A 立即中止,在这种情况下,函数 B 可以选择捕获 A 拋出的异常进行处理,也可以选择置之不理。 如果置之不理,这个异常就会被拋给 B 的调用者,以此类推 阅读全文

posted @ 2023-12-05 15:54 廿陆 阅读(9) 评论(0) 推荐(0) 编辑

C++ 内联函数 inline
摘要:宏定义实现和普通函数实现: - 宏定义是直接在实现的时候进行代码替换,可能产生结果异常问题。 - 普通函数实现:调用函数进出函数体的时候时间开销可能过大。 1 #include <iostream> 2 using namespace std; 3 //宏实现 4 #define GETMAX(a, 阅读全文

posted @ 2023-12-04 17:03 廿陆 阅读(11) 评论(0) 推荐(0) 编辑

C++ 预处理器
摘要:条件编译: 有几个指令可以用来有选择地对部分程序源代码进行编译。 这个过程被称为条件编译。 条件预处理器的结构与 if 选择结构很像。请看下面这段预处理器的代码: #ifdef NULL #define NULL 0 #endif 可以只在调试时进行编译,调试开关可以使用一个宏来实现,如下所示: # 阅读全文

posted @ 2023-11-30 17:09 廿陆 阅读(6) 评论(0) 推荐(0) 编辑

C++ #ifndef #endif 条件编译
摘要:#ifndef : if not defined 是预处理功能(宏定义、文件包含、条件编译)当中的条件编译; 1. 防止头文件的重复包含和编译 2. 便于程序的调试和移植 #endif: 示例: test1_h test2_h 当test2_h文件中引入了 test1_h头文件 在Main.cpp文 阅读全文

posted @ 2023-11-23 16:06 廿陆 阅读(35) 评论(0) 推荐(0) 编辑

C++ Node 结构体---链表
摘要:链表: struct Node { int data; struct Node* next; //Node* next;亦可 }; 阅读全文

posted @ 2023-11-17 17:18 廿陆 阅读(13) 评论(0) 推荐(0) 编辑

C++ STL map/multimap容器
摘要:map基本概念: map中所有元素都是 pair pair中第一个元素为 key(键值),起到索引作用, 第二个元素为 value(实值) 所有元素都会根据元素的键值自动排序 本质: map/multimap属于 关联式容器 , 底层结构是用二叉树实现 优点: 可以根据key值快速找到 value值 阅读全文

posted @ 2023-09-18 12:06 廿陆 阅读(17) 评论(0) 推荐(0) 编辑

C++ STL set/multiset容器
摘要:set基本概念: 所有元素都会在插入时自动被排序 本质: set/multiset属于关联式容器,底层结构是用二叉树实现 set和multiset区别: set不允许容器中有重复的元素 multiset允许容器中有重复的元素 set构造和赋值 1 #include <iostream> 2 #inc 阅读全文

posted @ 2023-09-07 11:25 廿陆 阅读(23) 评论(0) 推荐(0) 编辑

C++ STL list容器 链表
摘要:list基本概念: 功能:将数据进行链式存储 链表(list):是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成:链表由一系列结点组成 结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域 优点:可以对任意位置进行快速插入或删除元 阅读全文

posted @ 2023-09-06 10:37 廿陆 阅读(103) 评论(0) 推荐(0) 编辑

C++ STL stack -- queue
摘要:stack基本概念 stack是一种 先进后出(First In Last Out, FILO) 的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为 栈可以判断容器是否为空: empty 站可以返回元素个数:size 栈中进入数据 入栈 push 栈中弹出数据 出 阅读全文

posted @ 2023-09-06 10:03 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++ STL deque
摘要:deque容器基本概念 功能:双端数组,可以对头端进行插入删除操作 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低 deque相对而言,对头部的插入删除速度比vector快 vector访问元素时的速度会比deque快,这和两者内部实现有关 deque内部 阅读全文

posted @ 2023-09-01 11:30 廿陆 阅读(8) 评论(0) 推荐(0) 编辑

C++ STL vector
摘要:vector 与 普通数组 区别 不同之处:数组是静态的 而vector可以动态扩展 动态扩展:并不是在原空间之后续接新空间,而是找更大的空间内存,然后将原数据拷贝新空间,释放原空间。 vector的迭代器是支持随机访问的迭代器 vector构造函数 1 #include <iostream> 2 阅读全文

posted @ 2023-08-30 17:14 廿陆 阅读(8) 评论(0) 推荐(0) 编辑

C++ STL string
摘要:string 和 char* 区别 char * 是一个指针 string 是一个类,类内部封装了 char* , 管理这个字符串, 是一个 char* 型的容器 特点:string类内部封装了很多成员方法 例如: 查找 find 拷贝 copy 删除 delete 替换 replace 插入 in 阅读全文

posted @ 2023-08-29 11:33 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++ STL vector
摘要:STL中最常用的容器为 Vector (可理解为数组) 容器: vector 算法: for_each 迭代器: vector<int>::iterator //创建了一个vector容器 数组 vector<int> v; //向容器中插入数据 v.push_back(10); v.push_ba 阅读全文

posted @ 2023-08-27 11:37 廿陆 阅读(10) 评论(0) 推荐(0) 编辑

C++ STL基本概念
摘要:STL基本概念 1.STL(Standard Template Library)标准模板库 2.STL从广义上分: 容器(container) 算法(algorithm) 迭代器(iterator) 3.容器和算法之间通过迭代器进行无缝连接 4.STL几乎所有的代码都采用了模板类或者模板函数 SLT 阅读全文

posted @ 2023-08-27 10:56 廿陆 阅读(9) 评论(0) 推荐(0) 编辑

C++类模板 案例(多回顾)
摘要:案例:通用数组类 1.可以对内置数据类型以及自定义数据类型的数据进行存储 2.将数组的数据存储到堆区 3.构造函数中可以传入数组的容量 4.提供对应的拷贝构造函数以及operator=防止浅拷贝问题 5.提供尾插法和尾删法对数组中的数据进行增加和删除 6.可以通过下标的方式访问数组的元素 7.可以获 阅读全文

posted @ 2023-08-19 20:49 廿陆 阅读(26) 评论(0) 推荐(0) 编辑

C++ 类模板与友元
摘要:1.全局函数类内实现: 直接在类内声明友元即可 类内void printPerson(Person<T1,T2> p) 添加 friend 为友元 为全局函数,非类内成员函数 1 #include <iostream> 2 using namespace std; 3 //通过全局函数 打印Pers 阅读全文

posted @ 2023-08-18 23:27 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

C++ 类模板分文件编写
摘要:问题:类模板中成员函数创建时机是在调用阶段,导致分文件编写时链接不到 解决: 1.直接包含 .cpp 源文件 2.将声明和实现写到同一个文件中,并更改后缀名为 .hpp hpp是约定名称,并不是强制 1.person.h文件 1 #pragma once 2 #include<iostream> 3 阅读全文

posted @ 2023-08-18 23:10 廿陆 阅读(47) 评论(0) 推荐(0) 编辑

C++类模板与继承 类模板成员函数类外实现
摘要:1.当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型 2.如果不指定,编译器无法给子类分配内存 1 template<class T> 2 class Base 3 { 4 T m; 5 }; 6 //class Son:public Base //错误 7 class So 阅读全文

posted @ 2023-08-18 22:50 廿陆 阅读(47) 评论(0) 推荐(0) 编辑

C++类模板对象做函数参数
摘要:类模板实例化出的对象,向函数传参的方式 1.指定传入类型 直接显示对象的数据类型 2.参数模板化 将对象中的参数变为模板进行传递 3.整个类模板化 将这个对象类型 模板化进行传递 1 #include <iostream> 2 using namespace std; 3 4 template<cl 阅读全文

posted @ 2023-08-14 12:30 廿陆 阅读(28) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示