自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 c++Primer读书笔记(第十章 泛型算法)

概述头文件:algorithm、numeric泛型算法永远不会执行容器的操作,运行于迭代器之上,执行迭代器的操作。10.2 初始泛型算法10.2.1 只读算法findfind(vec.begin(),vec.end(),val);accumulate(求和)accumulate(vec.cbegin(),vec.end(),0);//求和,和的初值设置为010.2.2写容器的算法算法不会检查写操作fillfill(vec.begin(),vec.end(),0);拷贝

2020-10-28 16:01:06 183

原创 c++Primer读书笔记(第九章 顺序容器)

9.1 顺序容器概述通常使用vector是最好的选择,除非你有更好的理由选择其他容器。选额容器的基本原则:没有特殊理由就使用vector空间的额外开销很重要,则不要用list和forward_list随机访问:vector、deque任意位置插入或这删除:list和forward_list头尾插入、中间没有操作:deque如果程序只有在读取输入时才需要在容器中间插入元素,随后需要随机访问元素(1)向vector追加元素,再sort(2)输入阶段使用list,一旦输入完成,拷贝到v

2020-10-26 14:47:51 171

原创 c++Primer读书笔记(第八章 IO库)

8.1 IO类io描述8.1.1 IO对象无拷贝或赋值不能对IO对象进行拷贝或者赋值不能将形参或者返回类型设置为流类型进行IO操作的函数通常用引用方式传递或者返回流读写IO对象会改变其状态,不能用const8.1.2 条件状态一个错误IO的例子:int ival;cin>>ival;//键入abc,读操作失败一旦一个流发生错误,后续的IO操作都会失败。所以我们需要在使用一个流之前检查它是否处于良好的状态。最简单的方法就是将它当做一个条件来使用while(cin&g

2020-10-25 14:27:56 114

原创 c++Primer读书笔记(第七章 类)

类类的基本思想:数据抽象(data abstraction)和封装(encapsulation)数据抽象依赖于:接口(interface)和实现(implementation)分离的编程引入this指针成员函数可以通过一个this指针来访问调用它的那个对象引入const成员函数const成员函数作用是将this声明为指向常量地指针,使得成员函数不能改变调用它的对象的内容。7.1.4构造函数默认构造函数只有当一个类没有声明任何构造函数,编译器才能自动生成默认构造函数=defau

2020-10-24 20:52:25 204

原创 c++Primer读书笔记(第六章 函数)

6.1函数基础调用函数主调函数的执行被暂时中断,被调函数开始执行。6.2参数传递引用传递:可以通过形参改变实参的值值传递:拷贝使用引用来避免拷贝:拷贝大的类类型对象或者容器对象比较低效,甚至有的类类型根本不支持拷贝操作。可以使用引用形参来访问类型的对象。注意:如果函数无需改变引用形参的值,最好将其声明为常量引用。使用引用形参范围额外的信息6.2.3 const形参和实参...

2020-10-23 16:23:32 107

原创 c++Primer读书笔记(第五章 语句)

5.1简单语句复合语句指的是花括号中间的语句,也称为块(作用域)switch语句case标签必须是整形常量表达式不要忘记加breakchar ch;switch(ch){ case 'a': acnt++; break; case 'b': bcnt++; break; default: break;}default标签:如果没有任何一个case匹配的话,匹配default标签后面的语句do while 语句先执行后检查break语句负责

2020-10-22 14:05:30 71

原创 c++Primer读书笔记(第四章 表达式)

4.1基础4.1.1 基本概念一元运算符:取地址符(&)、解引用符(*)二元运算符:相等运算符(==)二元运算时小整数类型(如bool、char、short等)通常会被提升(promoted)成较大的整数类型(如int)重载运算符当运算符作用于类类型的运算对象时,用户可以自行定义其含义。左值和右值:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)4.5 递增和递减运算符递增和递减有两种形式除非必须,否则不

2020-10-21 20:06:38 777 1

原创 win10和ubuntu 双系统安装

1.下载linux系统iso文件在官网下载最新版本ubuntu iso文件下载USBwriter工具在windows上制作启动盘打开USBwritersource file选择安装好的镜像文件Target device选择你的U盘(U盘文件需要备份,会清空所有文件)点击write,完成后直接关闭分配ubuntu系统的安装空间在需要安装双系统的电脑上,右击我的电脑——管理——磁盘管理选择一个有足够可用空间的磁盘,右键选择压缩卷,选择压缩空间(个人100g)进入U盘系统安装u

2020-10-21 13:16:00 135

原创 c++Primer读书笔记(第三章 字符串、向量和数组)

3.1命名空间的using声明头文件不应该包含using声明头文件的内容会被拷贝到所有引用它的文件中去,如果头文件里面有某个using声明,那么每个使用了该头文件的文件就都会有这个声明。对于某些程序来说,由于不经意包含了一些名字,反而可能产生始料未及的名字冲突。3.2标准库类型 string3.2.1定义和初始化string对象string s1;//空字符串string s2=s1;//拷贝操作符string s3="hiya";string s4(10,'c');直接初始化和拷贝初始

2020-10-16 11:14:47 85

原创 用weak_ptr解决Observer模式的race condition*(能否用shared_ptr替代)

会发生race condition的简单observer模式典型场景(Observer模式):当Observable通知每一个Observer的时候,他从何得知Observer对象还活着?–如果在Observer的析构函数中调用unregister函数,会产生两个race condition在调用unregister的时候如何得知通知者subject_是否还存活?就算存活,线程A执行到unregister前,还没有来得及,而这时候线程B执行updata,指向的正好是A正在析构的对象。问题出

2020-10-12 16:59:54 241

转载 c++智能指针的enable_shared_from_this和shared_from_this机制

c++智能指针的enable_shared_from_this和shared_from_this机制问题:用shared_ptr智能指针管理指针p所指向的对象时,如果用的是如下的形式,那么ptr1.use_count和ptr2.use_count都会是1。那么同一个new A会被析构两次。 A *p = new A(); // 裸指针指向堆上的对象 shared_ptr<A> ptr1(p);// 用shared_ptr智能指针管理指针p指向的对象 shared_ptr<.

2020-10-12 11:40:29 364

原创 后端面试知识点总结 其他

DockerDocker是在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等,极大的简化了容器的创建和维护。使得docker技术比虚拟机更为轻便、快捷。与传统虚拟机比较传统虚拟机:虚拟出一套硬件,在其上运行一个完整的操作系统,在该系统上再运行应用程序docker:容器内的应用程序直接运行于宿主的内核中,容器内没有自己的内核,而且没有进行硬件虚拟;每个容器内都有一个属于自己的文件系统,互不影响。Docker优势更高效的利用系统资源:内核级别的虚拟化,可以在一个物理机上运行很

2020-10-09 14:22:23 677 1

原创 后端面试知识点总结 redis

数据库之RedisRedis概述Redis(Remote Dictionary Server),即远程字典服务。是一个开源的、使用C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis是单线程(因为全部数据在内存中,使用单线程可以取消线程切换时的上下文切换资源消耗)的,基于内存操作,CPU不是redis的性能瓶颈

2020-10-09 14:21:17 291

原创 后端面试知识点总结 数据库 mysql

关系型和非关系型数据库关系型数据库指采用了关系模型来组织数据的数据库。关系模型指的是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。数据库事务必须具备ACID特性。关系:一张二维表,每个关系都具有一个关系名,也就是表名元组:二维表中的一行,在数据库中被称为记录属性:二维表中的一列,在数据库中称为字段域:属性的取值范围,也就是数据库中某一列的取值限制关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或者多个列组成关系模型:指对关系的描述。格式为:关

2020-10-09 14:19:38 1404

原创 后端面试知识点总结 计算机网络

计算机网络层级协议1、DNS协议,http协议,https协议属于应用层应用层是体系结构中的最高层。应用层确定进程之间通信的性质以满足用户的需要。这里的进程就是指正在运行的程序。应用层不仅要提供应用进程所需要的信息交换和远地操作,而且还要作为互相作用的应用进程的用户代理,来完成一些为进行语义上有意义的信息交换所必须的功能。应用层直接为用户的应用进程提供服务。2、TCP/UDP属于传输层传输层的任务就是负责主机中两个进程之间的通信。因特网的传输层可使用两种不同协议:即面向连接的传输控制协议TC

2020-10-09 14:15:59 3456

原创 后端面试知识点总结 操作系统

操作系统基础基本特征并发和并行并发是指宏观上在一段时间内能同时运行多个程序,而并行是指在同一时刻可以同时运行多个指令操作系统通过引入进程和线程,使得程序能够并发运行并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统共享共享是指系统中的资源可以被多个并发进程共同使用共享的方式有两种:互斥共享和同时共享互斥共享的资源称为临界资源;例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问虚拟虚拟技术把一个物理实体转换为多个逻辑实体虚拟技术主要有两种:时(时

2020-10-09 13:55:42 827 1

原创 后端面试知识点总结 算法与数据结构

算法与数据结构树树在计算机科学中,是一种十分基础的数据结构。几乎所有操作系统都将文件存放在树状结构中;几乎所有的编译器都要实现一个表达式树;文件压缩所用到的哈夫曼算法(Huffman’s Algorithm)需要用到树状结构;数据库所使用的B+tree则是一种相当复杂的树状结构。二叉树二叉树是n个节点的有限集合,该集合或者为空集,或者由一个根节点和两根互不相交的、分别被称为根节点的左子树和右子树组成。特点:每个节点最多有两个子树,所以二叉树不存在出度大于2的结点左子树和右子树是由顺序的,次序

2020-10-09 13:52:33 722

原创 后端面试知识点总结 设计模式

设计模式设计模式(Design Pattern)代表了最佳实践。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决问题。设计模式是一套被反复使用的、多人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式是软件设计中常见问题的典型解决方案。每个模式就像一张蓝图,可以通过对齐进行定制来解决代码中的特定设计问题。设计模式六大原则单一职责(Single Responsibility Principle)类的职责要单一,不能将

2020-10-09 13:50:56 464

原创 后端面试知识点总结 C++基础知识

c和c++的区别C面向过程,C++面向对象面向过程语言:性能比面向对象高,因为类调用时需要实例化,比较消耗资源,但是没有面向对象易维护,易复用,易扩展。面向对象语言:易维护,易复用,易扩展,由于具有面向对象的特性,可以设计出低耦合的系统使得系统更加灵活。但是性能低。c++仍然是以c位基础:区块、语句、预处理器、内置数据类型、数组、指针等都来自c。但是c++有模板、异常、重载、stl库、分装继承多态等部分。后缀名不同一些关键字有区别:C中的struct中不能有函数,但是C++中可以有ma

2020-10-09 11:36:57 486

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除