C++
记录C++学习中从基础到高层次的知识
Bubblegirl123
这个作者很懒,什么都没留下…
展开
-
C++学习15-散列哈希表
散列哈希表散列哈希表1.如何进行值的存放:除留余数法2.哈希冲突3.哈希冲突解决方法--线性检测法4.哈希冲突解决方法--装载因子法线性探测哈希表的实现代码5.哈希冲突解决方法--链地址法1.当链表太长2.所有的链表都过长用vector实现链式哈希表散列哈希表散列技术是在记录的存储位置和他的关键字之间建立一个确定的对应关系f,每个关键字key对应一个存储位置f(key)。查找时,根据这个对应...原创 2020-04-04 10:40:17 · 703 阅读 · 0 评论 -
C++学习14-容器的不同数据结构简介
容器的不同数据结构容器分为顺序/关联/...1.vector: 向量容器2.deque : 双端队列容器3.list : 链表容器容器适配器1.stack : 栈2.queue : 队列3.priority_queue :优先级队列关联容器容器分为顺序/关联/…C++ STL 组件之一: 容器顺序容器vector 一维数组 push_back / pop_backdeque 双端...原创 2020-04-01 12:29:46 · 455 阅读 · 0 评论 -
C++学习13-求解海量数据的问题
求解海量数据统计英文单词出现的次数,并按照出现的顺序打印单词和它的次数通过快排的分割,来求解海量数据top k的问题海量数据的前n大/前n小/Top k问题用小根堆求出前五最大数据并输出找第一个重复的数字统计数字及其出现的次数可以使用无序映射表对内存有限制的大数据处理统计英文单词出现的次数,并按照出现的顺序打印单词和它的次数int main(){ string strArr[] =...原创 2020-03-31 11:15:26 · 298 阅读 · 0 评论 -
C++学习12-迭代器实现
迭代器实现迭代器概念给String字符串类型提供迭代器的实现给当前Vector容器提供迭代器的插入删除等操作迭代器概念迭代器就是遍历容器的元素迭代器一般都设计为容器的嵌套类型(设计在容器里面的方法),对于外部来说,我们看不到容器的内部,但是不同容器的底层是不一样的,因为数据结构都不一样.但是每种容器的迭代方式都可以通过++it(运算符重载函数)来体现,用++it这个方式来遍历.迭代器是一种...原创 2020-03-29 09:49:28 · 485 阅读 · 1 评论 -
C++学习11-String类型 & 大数加减
String类型 & 大数加减String类型完成大数的加减法String类型以后处理字符串可以直接用String类型 #include编程能力强不强=处理字符串的能力强不强C++中的string是一个标准库类型,表示可变长的字符序列,而由于是标准库类型,所以string定义在命名空间std中ps:1.得到字符串长度 str2.length()2.底层是动态的 所以定义...原创 2020-03-28 19:48:39 · 1217 阅读 · 0 评论 -
C++学习10-STL内存池
内存池STL介绍内存分配内存池的思路内存池特点为什么要有空间配置器一些知识点开辟内存为什么要考虑内存对齐nginx内存池的大块内存和小块内存的界小块内存为什么不提供释放函数重置函数ngx_reset_pool什么时候调用惊群现象nginx适合短链接参考博文链接在这里STL介绍STL 是 C++ 标准程序库的核心。STL 内的所有组件都由模板构成,其元素可以是任意型别。程序员通过选用恰当的群集...原创 2020-03-27 19:53:11 · 900 阅读 · 0 评论 -
C++学习9-运算符重载
运算符重载运算符重载的意义运算符重载为成员函数运算符被重载为全局函数报错原因运算符重载的意义运算符重载,就是对已有的运算符赋予多重含义,使同一运算符作用于不同类型的数据时产生不同的行为。运算符重载的目的是使得 C++ 中的运算符也能够用来操作对象。优点:如果不做特殊处理,C++的 +、-、*、/ 等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。有时希望对象之间也能...原创 2020-03-16 12:27:05 · 245 阅读 · 0 评论 -
C++学习8-容器的空间配置器
容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。例子:Vector:向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。Vector 底层已经封装好了增删查改void r...原创 2020-03-15 12:40:19 · 180 阅读 · 0 评论 -
C++学习7-实现链表的类模板/vector类模板
模板名+参数列表=类名这里写自定义目录标题1.实现链表的类模板2.实现vector类模板(变量定义的三个指针)3.使用类模板写vector容器1.实现链表的类模板// text1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include <iostream>using namespace std;//用...原创 2020-03-13 09:37:48 · 600 阅读 · 0 评论 -
C++学习7-模板
模板:优点:对类型也可以参数化了01函数模板 02类模板tmplate<> 定义一个模板参数列表 --》可以定义模板参数模板参数:1.类型参数 — typename /class 定义多个类型参数 用,号分隔2.非类型参数 — int a(默认是个常量 不可以被修改)函数模板/类模板函数或者类前面有templatetemplate<typename T...原创 2020-02-24 18:02:56 · 119 阅读 · 0 评论 -
C++学习6-static成员方法&const常成员方法
C++学习6普通的成员方法静态成员方法:const常成员方法:这几个成员方法的互相调用关系程序演示如下:class CBook{public: CBook(const char*name) :mpname(new char[strlen(name) + 1]) { strcpy(mpname, name); mcount++;...原创 2020-02-23 21:55:49 · 156 阅读 · 0 评论 -
C++学习7-变量生命周期
变量生命周期int main(){ Test t1(10); Test t2; // => 不要写成 test t2() 会变成函数的声明 Test t3(t2); Test t4 = t3;//t3拷贝构造t4 // Test t5(40); Test t5 = Test(40); // 生成临时对象 Test(int)/*Test...原创 2020-02-22 20:59:10 · 396 阅读 · 0 评论 -
C++学习5-explicit/深拷贝/浅拷贝/拷贝构造/析构
C++学习51.explicit 修饰构造函数2.深拷贝,浅拷贝3.拷贝构造和赋值函数的区别4.构造函数和析构函数1.explicit 修饰构造函数给构造函数加了explicit千万别用explicit修饰带整型参数的构造 Test(int data)就只认 Test t2(10) 不认 Test t2 = 10#include <iostream>using name...原创 2020-02-21 20:01:54 · 329 阅读 · 0 评论 -
C++学习4-函数默认值/函数重载/内置类型的优先级/内联函数
1.函数默认值在函数的声明或者定义的地方,给函数的参数初始化,即给函数参数默认值.eg:int fun(int a,int b=20);若没给fun参数值,则给函数参数默认值.注意:函数形参是从右–>左依次赋值,编译时给形参值时从左–>右赋值(默认值可以在定义,声明的时候给,但当左边有,右边一定已经有了.)错误案例1:int fun(int a,int b);in...原创 2020-02-20 11:45:21 · 355 阅读 · 0 评论 -
C++学习3-const指针与一/二级指针
C++学习31.constC和C++中const的区别是什么?const与一级指针的结合const与二级指针的结合常量的值不可以修改(直接修改常量值)1.constconst修饰的变量不能够再作为左值,初始化完成后值不能被修改!C和C++中const的区别是什么?const的编译方式不同,C中,const就是当做一个变量来编译生成指令的。C++中。所有出现const常量名字的地方,都被常...原创 2020-02-19 17:48:14 · 352 阅读 · 0 评论 -
C++学习2-左值引用/类和对象/new malloc
C++学习21.C++传统的左值引用指针和引用的区别是什么?传参的一种手法2.类和对象3.new和malloc delete和free 区别4.C和C++如何互相代码调用5.C++里面能不能用memcpy、realloc这样的C函数1.C++传统的左值引用1.引用必须初始化,指针不一定要初始化2.引用初始化的时候引用哪块内存,就永远无法引用别的内存。3.定义一个引用变量开辟一个指针大小...原创 2020-02-18 19:11:04 · 167 阅读 · 0 评论 -
C++学习1-进程虚拟地址空间/函数调用/编译连接原理
1.进程虚拟地址空间对于以下代码:#include "pch.h"#include <iostream>using namespace std;int gdata1 = 10;int gdata2 = 0;int gdata3;static int gdata4 = 11;static int gdata5 = 0;static int gdata6;//g...原创 2020-02-17 18:21:51 · 227 阅读 · 0 评论