自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 智力逻辑场景题

同样,2号的方案也会被1号所洞悉,1号并将提出(97,0,1,2,0)或(97,0,1,0,2)的方案,即放弃2号,而给3号一枚金币,同时给4号(或5号)2枚金币。由于1号的这一方案对于3号和4号(或5号)来说,相比2号分配时更优,他们将投1号的赞成票,再加上1号自己的票,1号的方案可获通过,97枚金币可轻松落入囊中。分配方案可写成(97,0,1,2,0)或(97,0,1,0,2)。dp[1] = 1;不过,2号推知3号的方案,就会提出“98,0,1,1”的方案,即放弃3号,而给予4号和5号各一枚金币。

2023-05-16 16:59:06 763

原创 【C++成长之路】C++ 新特性(4)

深刻理解智能指针

2023-05-15 15:37:01 182

原创 【C++成长之路】C++ 新特性(3)

学习类型转换

2023-05-13 09:45:52 208

原创 【C++成长之路】C++ 11新特性(2)

学习理解Lambda表达式

2023-05-13 09:45:30 143

原创 【C++成长之路】C++ 11新特性(1)

理解新特性。

2023-05-13 09:45:01 87

原创 【C++成长之路】C++ STL(4)

理解迭代器的三大失效类型

2023-05-13 09:43:44 123

原创 【C++成长之路】C++ STL(3)

学习STL相关容器

2023-05-12 14:57:55 76

原创 【C++成长之路】C++ STL(2)

学习STL的组成部分

2023-05-12 14:39:24 90

原创 【C++成长之路】C++ STL(1)

认知模板的两种类型

2023-05-12 14:27:14 66

原创 【C++成长之路】C++类与对象(6)

深刻理解虚函数如何实现多态的。

2023-05-12 14:04:15 97

原创 【C++成长之路】C++类与对象(5)

学习继承的三种继承方式,并且掌握深拷贝与浅拷贝。

2023-05-12 12:02:13 80

原创 【C++成长之路】C++类与对象(4)

理解封装的思想,继承和多态才是重头戏。

2023-05-12 11:28:02 82

原创 【C++成长之路】C++类与对象(3)

类的八大默认成员函数,学习this指针和内联函数,友元函数静态成员。

2023-05-12 11:18:40 115

原创 【C++成长之路】C++类与对象(2)

深刻理解类与对象。

2023-05-12 10:37:22 63

原创 【C++成长之路】C++类与对象(1)

学习理解面向对象。

2023-05-12 10:21:02 91

原创 【C++成长之路】C++内存管理(3)

详细理解内存泄漏和为什么要内存对齐。

2023-05-12 00:02:03 102

原创 【C++成长之路】C++内存管理(2)

理解c++中new和malloc的区别,并熟知new申请空间的原理。

2023-05-11 23:44:41 88

原创 【C++成长之路】C++内存管理(1)

理解c++中每个内存中所存放的东西。

2023-05-11 23:26:29 89

原创 【C++成长之路】C++语言基础(4)

区分内联函数和宏。

2023-05-11 23:14:17 114

原创 【C++成长之路】C++语言基础(3)

重点掌握引用和指针的区别。

2023-05-11 23:03:14 69

原创 【C++成长之路】C++语言基础(2)

c++的一些基础知识。

2023-05-11 22:54:50 57

原创 【C++成长之路】C++语言基础(1)

本文理解了c++和c语言的一些认知,重点是c++面向对象,c面向过程。

2023-05-11 22:26:28 66

原创 说一说你对MVCC的了解

而其优化的手段就是,在进行写操作时,将数据copy一份,不会影响原有数据,然后进行修改,修改完成后原子替换掉旧的数据,而读操作只会读取原有数据。通过这种方式实现写操作不会阻塞读操作,从而优化读效率。而写操作之间是要互斥的,并且每次写操作都会有一次copy,所以只适合读大于写的情况。定义:MVCC是基于锁的并发控制,目的是为了实现事务的隔离性,通过版本号,避免同一数据在不同事务间的竞争,读不加所,读写不冲突,优化了读远大于写的数据情况。

2023-05-01 16:29:24 50

原创 HTTP协议的缓存策略有哪些?

HTTP协议的缓存策略有两种,分别是强制缓存和协商缓存,强制缓存的优先级大于协商缓存。强制缓存是服务器告诉浏览器一个缓存时间,在缓存时间内,下次请求,直接用缓存,不在时间内,执行协商缓存策略。HTTP协议的缓存策略是浏览器每次发起请求时,先在本地缓存中查找结果以及缓存标识,根据缓存标识来判断是否使用本地缓存。如果缓存有效,则使用本地缓存,否则,则向服务器发起请求并携带缓存标识。HTTP协议的缓存策略分两种:强制缓存和协商缓存,而强制缓存优先级大于协商缓存。

2023-05-01 16:26:26 525

原创 C++字符串转数字

将字符串转换为long long。将字符串转换为double型。将字符串转换为float型。

2023-04-24 17:28:52 187 1

原创 linux下brk、mmap、malloc和new的区别

mmap是系统调用,也是实现虚拟内存到内存的映射,可以让进程的虚拟地址区间切分出一块指定大小的虚拟地址空间vma_struct,一个进程的所有动态库文件.so的加载,都需要通过mmap系统调用映射指定大小的虚拟地址区间,被mmap映射返回的虚拟地址,逻辑上被消耗了,直到用户进程调用unmap,会回收回来。brk是系统调用,主要工作是实现虚拟内存到内存的映射,可以让进程的堆指针增长一定的大小,逻辑上消耗掉一块虚拟地址空间,malloc向OS获取的内存大小比较小时,将直接通过brk调用获取虚拟地址。

2023-04-21 16:43:07 490

原创 指针和引用的区别

指针和引用的区别。

2023-04-21 16:32:24 34

原创 继承的三种类型

当一个类派生自基类,该基类可以被继承为。

2023-04-21 12:05:59 92

原创 ET/LT模式区别

当epoll_wait检测到fd上有事件发生并将此事件通知应用程序后,应用程序可以不立即处理该事件,这样,当应用程序下一次调用epoll_wait时,epoll_wait还会再次向应用程序通知此事件,直到此事件被处理。eg:客户端发送数据,I/O函数会提醒描述符fd有数据---->recv读数据,若一次没有读完,I/O函数会一直提醒服务端fd上有数据,直到recv缓冲区里的数据读完。所以要求服务端必须一次把数据读完--->循环读数据 (读完数据后,可能会阻塞) --->将描述符设置成非阻塞模式。

2023-04-12 22:48:42 344 1

原创 IO 多路复用

服务器端采用多线程,当 accept 一个请求后,开启线程进行 recv,可以完成并发处理,但随着请求数增加需要增加系统线程,大量的线程占用很大的内存空间,并且线程切换会带来很大的开销,10000 个线程真正发生读写事件的线程数不会超过 20%,每次 accept 都开一个线程也是一种资源浪费。服务器端当 accept 一个请求后,加入 fds 集合,每次轮询一遍 fds 集合 recv(非阻塞)数据,没有数据则立即返回错误,每次轮询所有 fd(包括没有发生读写事件的fd)会很浪费 cpu。

2023-04-12 13:51:04 3427

原创 静态库和动态库如何制作及使用,区别是什么

通过gcc获得.o文件:gcc -o -fpic a.o b.o,gcc -shared a.o b.o libxxx.so。通过gcc得到.o文件:gcc -c a.c b.c,使用ar工具:ar rcs libxxx.a a.o b.o。静态库是在程序链接阶段被复制到程序中,动态库是在程序运行时被加载到内存中被调用。静态库加载速度快,可移植性高,但是比较消耗系统资源,更新部署发布比较麻烦。加载到应用程序速度快、发布时无需提供静态库、移植性高。更新、部署、发布麻烦,消耗系统资源、浪费内存。

2023-04-09 11:12:40 253

原创 常见的HTTP协议响应头有哪些?

Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据。Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的。Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式。Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度。Content-Type:服务器通过这个头,告诉浏览器回送数据的类型。Server:服务器通过这个头,告诉浏览器服务器的型号。Expires: -1 控制浏览器不要缓存。

2023-04-09 11:11:13 396

原创 HTTPS协议中间人攻击是什么?

中间人攻击是指攻击者通过与客户端和客户端的目标服务器同时建立连接,作为客户端和服务器的桥梁,处理双方的数据,整个会话期间的内容几乎是完全被攻击者控制的。攻击者可以拦截双方的会话并且插入新的数据内容。客户端和服务器之间的桥梁、双向获取并且篡改信息。

2023-04-09 11:10:00 173

原创 介绍一下几种 IO 模型

阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。

2023-04-09 11:08:01 48

原创 IP协议的首部结构

第一个4字节: 版本号;第三个4字节:生存时间;第二个4字节:标识;首部协议一共是20个字节(固定)第五个4字节:目的ip地址;第四个4字节:源ip地址;

2023-04-09 10:54:33 150

原创 简述一下STL 的组成部分

迭代器:容器与算法间的粘合剂,共有五种类型,重载了指针相关的各种操作,比如operator++、operator--等,是一种类模板。容器:用来存放数据的各种数据结构,比如vector、deque、list、set和map等,是一种类模板。仿函数:行为类似函数,可以作为算法的某种策略,从实现角度来看,它是重载了operator()的一种类模板。算法:各种常用的算法,比如排序算法,拷贝算法、查找算法等,是一种函数模板。一共有六大部分:容器、算法、迭代器、仿函数、适配器、空间配置器。适配器可以修饰仿函数。

2023-04-09 10:35:07 147

原创 UDP(用户数据报协议)是什么?

UDP(用户数据报协议)是在传输层操作的因特网协议族的无连接协议,UDP 是无连接的:通过UDP进行的数据传输的特点是它在没有在发件人和收件人之间现有连接的情况下发生。另一方面,使用TCP连接时,会自动重新请求丢失的数据包,从而导致整个传输过程停止。UDP 不保证数据的安全性和完整性:发件人和收件人之间缺乏相互身份验证可确保UDP的出色传输速度 – 但是,协议既不能保证数据包的完整性,也不能保证数据包的安全性。实时应用程序主要使用基于UDP的实时传输协议(RTP),与基本协议不同,它可以检测数据包丢失。

2023-04-09 10:33:34 213

原创 说一说C++11 的新特性有哪些

declatype类型推导。try_catch抛出异常。四种cast类型转换。

2023-04-09 10:31:52 70

原创 简述一下 GDB 常见的调试命令

(gdb)list:查看原代码(list-n,从第n行开始查看代码。(gdb)run:重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件),简写r。(gdb)help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h。(gdb)step:单步调试(逐语句:跳入自定义函数内部执行),简写s。(gdb)backtrace:查看函数的调用的栈帧和层级关系,简写bt。(gdb)next:单步调试(逐过程,函数直接执行),简写n。

2023-04-09 10:13:28 313

原创 说一说虚拟地址空间有哪些部分

用户空间中的代码运行在较低的特权级别上,只能看到允许它们使用的部分系统资源,并且不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备,以及其他一些具体的使用限制。存放内核的代码和数据,所有进程的内核代码段都映射到同样的物理内存,并在内存中持续存在,是操作系统的一部分。内核空间为内核保留,不允许应用程序读写该区域的内容或直接调用内核代码定义的函数。栈又称堆栈,由编译器自动分配释放,行为类似数据结构中的栈(先进后出)。任何对它的引用都是非法的,用于捕捉使用空指针和小整型值指针引用内存的异常情况。

2023-04-09 10:12:11 962

空空如也

空空如也

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

TA关注的人

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