- 博客(43)
- 收藏
- 关注
原创 STL常用算法
sort //对容器内的元素进行排序random_shuffle //对元素进行洗牌,即将指定范围内的元素随机调整次序merge //容器元素合并,并存取到另一容器中reverse //反转指定范围的元素注:调用时需包含头文件algorithm。
2024-02-07 23:20:11
734
原创 函数对象(仿函数)的相关基本概念及用法
重载函数调用操作符的类,其对象称为函数对象函数对象使用重载的()时,行为类似函数调用,因此也被称为仿函数函数对象(仿函数)是一个类,而不是一个函数!!!
2024-02-05 19:52:12
775
原创 map容器的基本概念及常用成员函数
map是一个将一个值映射到另一个值的一种数据结构。(即两个值之间有一一对应关系)。map的所有元素都是pair类型,pair中的第一个元素称为键值(key)第二个元素称为实值(value)。key和value具有一一对应关系。在map插入元素时,所有元素都会按照key的大小进行排序。map本质上是一个关联式容器,其底层的内部实现为二叉树可以根据key值快速找到value值map不允许有重复的键值,但允许有重复的实值multimap允许有重复的键值。
2024-02-04 17:01:36
1168
原创 set容器的基本概念及常用函数
所有元素都会在插入时自动排序set/multiset属于关联式容器,底层的实现是二叉树1、set不允许容器中元素有重复2、multiset可以有重复的元素。
2024-02-04 11:36:29
405
原创 list容器的基本概念及常用接口
链表中第一个结点的front指针指向最后一个结点,最后一个结点的back指针指向第一个结点,从而在遍历时达到循环的效果。1、list插入操作和删除操作并不会使原有list迭代器失效(只要不删除迭代器所指向的元素),而vector的迭代器在进行插入和删除操作后,迭代器会立即失效。可以通过front和back成员函数访问容器的首尾元素,若要遍历各个元素,可以用迭代器进行++的操作,从而遍历容器中所有元素。由于链表的存储方式并不是连续的内存空间,因此链表list的迭代器只支持前移和后移,属于双向迭代器。
2024-02-03 18:15:12
1272
原创 栈和队列的概念及常用接口
栈是一种先进后出(后进先出)的一种数据结构,它只有一个出口。只能在栈顶进行入栈和出栈操作。栈本质上是一个输入输出受限的数组。
2024-02-02 11:33:56
397
原创 vector的相关概念及常用接口
vector容器与数组非常类似,也称vector可以动态扩展,而普通数组是静态空间,一旦确定了大小就不能修改动态扩展并非是在原有空间接新空间(因为不知道后面空间的使用情况),而是找更大的内存空间,然后将原数据拷贝到新空间中,释放原空间vector容器的迭代器是支持随机访问的迭代器(即可以进行+2,+n的操作)
2024-01-31 06:00:00
410
原创 string的基本概念及常用接口
string时C++风格的字符串,而string本质上是一个类。char*是一个字符指针。而string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。1、string类内部封装了很多的成员方法eg:查找find、拷贝copy、删除delete、替换replace、插入insert2、string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。
2024-01-30 13:06:05
1424
原创 STL相关介绍及具体应用
C++的面向对象和泛型编程的思想目的就是提升代码复用性。为了建立数据结构和算法的一套标准,且避免重复无意义的代码工作,诞生了STL。
2024-01-29 18:27:33
478
原创 继承的基本概念+用法
继承的好处:可以减少大量的重复代码(eg:某几个页面中重复的内容就可以用继承减少每页的代码量)继承的语法:class A:继承方式(eg:public) B{};---A称为子类(也称为派生类)、B称为父类(也称为基类)派生类的成员中,包含两大部分:一类是从基类中继承过来的(表现共性),一类是自己增加的成员(表现个性)
2024-01-13 13:12:09
412
原创 友元+运算符重载概念及用法解析
友元的作用:即将一个函数/类/成员当作类A的好朋友,可以访问原本访问不到的A的私有属性搭建一个场景,普通朋友可以在客厅参观,只有好朋友才能进卧室参观友元分为三种:成员函数做友元、全局函数做友元、类做友元。
2024-01-11 21:32:52
510
原创 类的相关语法+pow函数接口介绍(用于实现幂函数)
当写一个较大的项目时,若将类都写到一个文件中,则会造成文件过大或降低代码可读性,同时也会降低多人完成一个大项目的写代码效率。因此,分文件定义类是非常重要的。
2024-01-10 21:37:10
897
原创 随机数与new的基本语法+一键注释
ctrl+k+c-------------------一键注释/ctrl+shift+/(?ctrl+k+u-------------------一键解除注释。
2024-01-06 16:42:19
367
原创 C语言预处理(预定义符号,#define,宏,#和##,宏与函数的对比,条件编译,文件包含)
预定义符号,#define,宏,#和##,宏与函数的对比,条件编译,文件包含
2022-09-26 19:25:58
665
原创 动态内存管理(静态内存和动态内存管理的区别,malloc,calloc,realloc的用法及其区别,C/C++程序内存分配的几个区域)
动态内存管理(静态内存和动态内存管理的区别,malloc,calloc,realloc的用法及其区别,C/C++程序内存分配的几个区域)
2022-09-20 13:49:55
290
原创 sizeof与strlen的区别,二维数组,数组越界,冒泡排序,数组名,在调用函数中sizeof和strlen的用法区别
strlen与sizeof的区别,数组,冒泡排序函数
2022-08-11 13:52:32
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人