![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
aYang^
这个作者很懒,什么都没留下…
展开
-
LRU Cache + 并查集
什么是LRU CacheLRU是Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法。什么是 Cache?狭义的Cache指的是位于CPU和主存间的快速RAM,广义上的Cache指的是位于速度相差较大的两种 硬件之间, 用于协调两者数据传输速度差异的结构。除了CPU与主存之间有Cache, 内存与硬盘 之间也有Cache,乃至在硬盘与网络之间也有某种意义上的Cache── 称为Internet临时文件夹或 网络内容缓存等。为什么要用LRU ?Cache的原创 2020-08-16 12:16:44 · 192 阅读 · 0 评论 -
C++11在STL容器中 加入了emplace_back():
C++11emplace_back():如果要将一个临时变量push到容器的末尾,push_back()需要先构造临时对象,再将这个对象拷贝到容器的末尾,而emplace_back()则直接在容器的末尾构造对象,这样就省去了拷贝的过程。同样还有 emplace_front —> [push_front] emplace --> [insert]上代码:#include <iostream>#include <cstring>#include <原创 2020-05-29 14:05:07 · 433 阅读 · 0 评论 -
模版的实现原理
首先 注意区分两个概念:类模版 和模版类函数模版 和 模版函数类/函数模版 是家族 ,模版类/函数 是家族的一个成员。C++中类模板的声明格式为template<模板形参表声明><类声明>,并且类模板的成员函数都是模板函数模板的特性首先来看一个例子:templateint Func1() { return n; }int Func2(int n) { return n;...原创 2020-04-15 13:10:09 · 2111 阅读 · 1 评论 -
C/C++动态内存管理的区别
1 C语言中的动态内存管理方式1 C摘要malloc(字节) ————申请calloc(数量,每个字节大小)————申请并初始化为0realloc ()扩展或者压缩realloc 扩展可能导致位置改变,所以要重新接收,压缩会截尾free()释放,C 详细malloc 接口 申请 free释放int arrary= (int*) malloc(nsizeof( int));...原创 2019-10-31 23:52:52 · 438 阅读 · 0 评论 -
智能指针/强制类型转换
智能指针1 为什么 要用智能指针------防止内存泄露什么是智能指针?智能指针是一种思想:RAII :利用对象生命周期来控制程序资源优点: 1 不需要显式的释放资源2 随对象生命周期结束释放资源智能指针分类 :std::auto_ptr std::unique_ptrstd::shared_ptr1 std::auto_ptr这个智能指针有它的缺点当...原创 2020-03-13 20:54:52 · 3494 阅读 · 0 评论 -
关联式容器unordered系列
1 unordered_mapC++ 98 中,STL提供了底层为红黑树的一系列关联式容器,查询效率可以达到O(n),即最差情况下需要比较红黑树高度次但是 假如红黑树比较大是,那么O(log N )的查询效率仍然显得有些慢。因此**C++11 中提供了unordered 系列容器,**可以达到查询效率为O(1);4 个unordered 系列容器,unordered_mapunord...原创 2020-03-12 09:39:56 · 756 阅读 · 0 评论 -
this 指针
什么是 this 指针?C++this指针,一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象。全局仅有一个this指针...原创 2019-10-22 20:04:41 · 862 阅读 · 0 评论 -
stack栈
什么是栈?什么是队列?栈就是连续的,先进后出,哪里进哪里出队列不一定连续,先进先出,头进尾出,就像 喝吃东西 栈吃了 又吐了队列呢 吃了,然后就跑去卫生间了怎么用栈实现队列?两个栈 一起就可以,出来的元素又进另一个栈怎么用队列实现栈呢?那就更简单了 ,每次将队列的前n-1个元素搬移到另一个队列里,然后剩下的元素出队。**容器适配器:**将特定容器封装作为底层容器"栈是...原创 2019-11-12 16:01:33 · 125 阅读 · 0 评论 -
STL关联式容器
STL 序列式容器 : vector list dequeforward_list stackSTL 关联式容器 :里面存储数据的格式是<key,value>结构,与序列式容器相比 ,关联式容器的数据检索效率更高。树形结构关联式容器map multimap set multiset底层均用红黑树实现。键值对: 表示一组具有一一对应的关系的结构,其里面存储的...原创 2020-02-29 09:01:39 · 574 阅读 · 0 评论 -
C++多继承中指针偏移+四个内置强制类型转换
话不多说,遇到了就来看下先看代码#include "iostream"using namespace std;class Base1 { private: int base1_;};class Base2 { private: int base2_;};class Driver :public Base1 , public Base2 {...原创 2020-02-12 14:47:01 · 1898 阅读 · 2 评论 -
多态的实现原理
1 虚函数虚函数就是在函数前边加上 关键字 virtual2虚函数重写什么是虚函数重写?就是在继承中 基类中存在虚函数时,在派生类中进行重写该虚函数。就像Java 语言中的 重写,它的 函数名,参数列表 ,返回值类型都一样,但内部实现不同。#include"iostream"#include"windows.h"using namespace std;class Perso...原创 2019-11-21 15:19:47 · 1420 阅读 · 0 评论 -
C++进阶之继承
1 为什么要用继承?继承是代码的复用的一种实现,呈现了oop的层次结构,继承是类设计层次的复用。2 继承的风格class A{};class B :public A{};:为继承符号A为被继承类称为 基类B为继承类 ,称为派生类public称为继承方式 :继承方式分为 public protected private 三种同样 访问限定符也分为 public pr...原创 2019-11-19 16:29:38 · 243 阅读 · 0 评论 -
内存泄露
什么是内存泄露:内存泄漏就是申请了空间却没有成功释放,或者是申请了空间,却丢失了指向该空间的指针,造成内存无法操控,危害:内存泄漏会导致系统变慢,卡顿,甚至卡死。长期运行的程序出现内存泄漏,影响,如操作系统,后台服务等,影响很大。内尺寸泄露的分类:(了解)C/C++ :程序中一般我们古纳辛两方面:1 堆内存泄漏malloc calloc relloc new 等创建出来的...原创 2019-11-01 23:26:56 · 701 阅读 · 0 评论 -
初学C++与C的一些区别点
C++结构体和C语言区别*1 C语言中定义了一个结构体,在定义新成员时,必须加上关键字struct,除非用 typedef 重新定义但 C++可以省略 struct关键字2.C 语言中 ,函数不能是结构体的成员struct{int a;void(){printf(“helloworld”);}}; C语言中 非法!!但 C++ 中 合...原创 2019-10-21 22:19:58 · 112 阅读 · 0 评论 -
内联函数与宏函数
参数宏 与 函数:1.函数调用时,先求出实参表达式的值,然后带入形参。而使用带参的宏只是进行简单的字符替换。2.函数调用是在程序运行时处理的,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有“返回值”的概念。3.对函数中的实参和形参都要定义类型,二者的类型要求一致,如不一致,应进行类型转换;而宏不存在类型问题,宏名无类型,它的参数也无类型,...原创 2019-10-21 22:15:18 · 1224 阅读 · 0 评论