C++
文章平均质量分 91
C++学习
风继续吹TT
这个作者很懒,什么都没留下…
展开
-
【C++】C++11 新特性
C++11:列表初始化、decltype、右值引用、lambda表达式、包装器、thread线程库、条件变量原创 2023-03-02 22:23:50 · 1742 阅读 · 4 评论 -
【C++】C++11 异常
异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在你想要处理问题的地方,通过异常处理程序捕获异常,catch 关键字用于捕获异常,可以有多个catch进行捕获。try: try 块中的代码标识将被激活的特定异常,它后面通常跟着一个或多个 catch 块。原创 2023-03-02 21:41:10 · 883 阅读 · 3 评论 -
【C++】哈希表
(1)依次读取IP,i = BKDRHash(ip)%200(n),i是多少ip就进入对应编号的小文件中,相同的ip就一定进入了同一个小文件,然后使用map统计一个小文件的ip的次数,就是这个ip准确的次数。注意:该函数中实际调用哈希桶的插入操作,用参数key与V()构造一个默认值往底层哈希桶中插入,如果key不在哈希桶中,插入成功,返回V(),插入失败,说明key已经在哈希桶中,将key对应的value返回。近似算法:将一个文件放入布隆过滤器,遍历另一个文件,看它在布隆过滤器中有没有,如果存在就是交集。原创 2023-02-23 21:19:34 · 912 阅读 · 0 评论 -
【C++】map和set的使用
目录1. 内容补充1.1. 序列式容器与关联式容器1.2. 键值对1.3. 树形结构的关联式容器2. set的使用2.1. set的介绍2.2. set的使用2.3. multiset的介绍2.4. multiset的使用3.map的使用3.1. map的介绍3.2. map的使用3.3. multimap的介绍3.4. multimap的使用1. 内容补充1.1. 序列式容器与关联式容器我们已经接触过STL中的部分容器,比如:ve原创 2022-05-22 21:11:01 · 1491 阅读 · 36 评论 -
【C++】二叉搜索树
目录1. 什么是二叉搜索树2. 二叉搜索树的实现2.1. 二叉搜索树的插入2.2. 二叉搜索树的删除2.3. 二叉搜索树的查找3. 二叉搜索树的应用4.二叉搜索树的性能5. 二叉树面试题5.1.根据二叉树创建字符串5.2.二叉树的层序遍历5.3.二叉树的最近公共祖先5.4.二叉搜索树与双向链表5.5.从前序与中序遍历序列构造二叉树5.6.二叉树的前序遍历(非递归实现)5.7.二叉树的中序遍历(非递归实现)5.8.二叉树的后序遍...原创 2022-05-10 13:05:51 · 939 阅读 · 11 评论 -
【C++】多态
1. 什么是多态我的理解是:不同的对象完成某个相同的行为,会产生不同的状态。多态分为编译时多态和运行时多态。编译时多态(静态):例如函数重载,看起来是调用同一个函数,却有不同的行为运行时多态(动态):父类的指针或引用去调用函数,传递不同的对象,会调用不同的函数例如:去商场购物,有些商场根据以往消费情况将会员分为普通会员、黄金会员、钻石会员...不同的会员在消费时可以使用不同的折扣对商品打折。2. 多态的定义2.1. 多态构成条件在继承中要构成多态的两个条件:原创 2022-04-13 10:41:02 · 1966 阅读 · 12 评论 -
【C++】继承
目录1. 概念2. 定义2.1. 使用格式2.2. 继承方式与限定修饰符3. 基类和派生类对象赋值转换 (public继承)4. 继承中的作用域5. 子类类的默认成员函数6. 继承与友元7. 静态成员8. 菱形继承和虚继承8.1 菱形继承8.2 虚继承(virtual)8.3 虚继承解决数据冗余和二义性的原理9. 继承总结、继承与组合9.1总结9.2 继承与组合1. 概念继承(inheritance)机制是面向对象程序设..原创 2022-04-08 12:14:39 · 9081 阅读 · 26 评论 -
【C++】模板
前言在前面认识模板章节,我们大概解了模板在函数和类中的简单使用,但是模板可不止这么简单,它还有更多的用法,本章就来对一些用法进行学习。1. 非类型模板参数模板参数分类类型形参与非类型形参。类型形参:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参:就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。例如:#include<iostream>using namespace std;.原创 2022-04-05 11:35:43 · 3348 阅读 · 12 评论 -
【C++】priority_queue(优先级队列)
1. prioriy_queue介绍如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了。这样,我们就引入了优先级队列 这种数据结构。优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有(1)查找(2)插入一个新元素 (3)删除 ,一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素 。对于优先权相同的元素,可按原创 2022-04-03 12:00:02 · 5726 阅读 · 2 评论 -
【C++】stack and queue
目录1. stack1.1. stack常用接口实现2. queue2.1. 常用接口模拟实现3. 容器适配器3.1. 适配器3.2.STL标准库中stack和queue的底层结构4.stack&queueOJ题4.1.最小栈4.2.栈的弹出、压入序列4.3.逆波兰表达式求值1. stackSTL---stack文档关于stack是什么和怎么用这里不再介绍。实现也只是贴代码(毕竟太简单)。1.1. stack常用接口实...原创 2022-04-02 20:47:56 · 1725 阅读 · 21 评论 -
【C++】list
1.list介绍通过前面的数据结构阶段的学习和string以及vetcor的学习,学习list简直就是砍瓜切菜。STL中额list是一个双向带头循环链表,具体结构不再多说。2.list常用接口模拟实现原创 2022-04-02 10:36:18 · 1338 阅读 · 14 评论 -
【C++】vector
1. vector介绍1.1 什么是vector1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自 动处理。3. 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小 为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言原创 2022-03-31 17:42:21 · 1309 阅读 · 17 评论 -
【C++】string
前言为什么C++中增加了string类型,而不继续使用C语言中的字符串?C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问,可能会出现很多错误。同时在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本都使用string类,很少有人去使用C库中的字符串操作函数。...原创 2022-03-04 18:00:01 · 1818 阅读 · 52 评论 -
【C++】泛型编程---认识模板
1. 泛型编程2. 函数模板2.1 函数模板概念2.2函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则3. 类模板3.1 类模板的定义格式3.2 类模板的实例化原创 2022-02-21 14:40:24 · 301 阅读 · 6 评论 -
【C++】内存管理
1.new/delete1.1 new/delete操作内置类型1.2 new和delete操作自定义类型2.operator new与operator delete函数3.new和delete的实现原理3.1内置类型3.2自定义类型4.定位new表达式原创 2022-02-21 14:04:32 · 248 阅读 · 14 评论 -
【C++】类和对象(下)
1.构造函数之回首掏(doge)2.static成员3.C++11 的成员初始化4.友元5.内部类(了解)原创 2021-12-18 20:26:29 · 1981 阅读 · 63 评论 -
【C++】类和对象(上)
1.面向过程和面向对象C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的定义C++中类的关键字既可以用class,也可以用struct。常用的是class。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。class className{ // 类体:由成员函数和成员变量组成}; 例如:一个.原创 2021-12-11 12:03:33 · 3766 阅读 · 60 评论 -
【C++】extern “C“ 用法详解
前言原创 2021-12-03 21:06:58 · 3663 阅读 · 43 评论 -
【C++】初窥门径---入门篇
前言经过前面对C语言和数据结构初阶的学习,自己也初步进入了编程的世界。从最初的兴趣至极,到热情消减,转至平淡,再到现在代码已经逐渐为生活的一部分。越发感觉代码的奇妙,编程世界的广阔无垠。希望两年后的自己回首往昔,能够为之感叹~感谢各位读者的点赞与支持,与君共勉!从本章开始,将进入C++学习阶段。1.命名空间在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进原创 2021-11-28 19:43:47 · 2912 阅读 · 50 评论