![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
villainV8
一个即将找到工作的码农
展开
-
C++智能指针
智能指针的产生是参考了RAII的思想,即new出来的对象可能忘记回收,导致内存泄漏,那么就封装这么一个智能指针,将对象的delete放入智能指针的析构函数中,又因为智能指针是一个栈对象,当代码段运行结束时会自动调用析构函数,那么自然也就顺便释放了资源。这样就能一定程度上防止程序员忘记释放资源而导致内存泄漏。智能指针分为四种(现存三种)auto_ptr、unique_ptr、shared_ptr和weak_ptr#include<memory> //头文件其中auto_ptr已经废弃,废原创 2021-11-17 13:44:34 · 54 阅读 · 0 评论 -
epoll及高并发服务器详解
重要函数API[ epoll_create ]#include<sys/epoll.h>int epoll_create(int size) //创建一个epoll文件描述符,size是监听个数epoll_create是创建一个存储文件描述符的红黑树,返回这颗红黑树的树根epfd。[ epoll_ctl ]int epoll_ctl(int epfd, //epoll_create返回的文件描述符 int op,原创 2021-11-03 11:34:35 · 148 阅读 · 0 评论 -
C++成长记(计算机网络——DNS协议,域名解析过程)
域名服务器类型根域名服务器,顶级域名服务器,权限域名服务器,本地域名服务器。为什么要有域名解析过程?因为对于普通用户来说记忆一个IP地址过于麻烦,IP地址使用点分十进制的方式进行来表示,比如192.168.101.101,这样是不是过于难记?相对而言,www.baidu.com是不是容易记录多了?所以所谓的域名解析过程其实就是换了个名字,并且由服务器来记录域名和IP地址之间的对应关系,用户需要的时候就输入域名,然后由服务器来对域名进行解析找到对应的IP地址然后返回给用户,用户就能进入相对应的网站。DN原创 2020-06-04 16:08:28 · 402 阅读 · 0 评论 -
C++成长记(计算机网络——TCP与UDP详解)
UDP与TCPUDP与TCP均为传输层最为重要的协议主要区别如下:UDP是非可靠连接,面向报文(整个报文发送),支持多对多发送,报文首部比较小(只有校验);TCP是可靠连接,面向字节流(因为有拥塞控制,丢包重传等机制),只支持一对一,报文首部比较大(提供校验,ACK,序号,确认号等等);TCP如何建立连接(三次握手):客户端向服务器端发送连接请求,SYN=1,seq=x;服务器端收到连接请求后确认并回复连接请求,SYN=1,ACK=1,seq=y,ack=x+1;客户端收到服务器端的确认原创 2020-05-31 21:06:33 · 413 阅读 · 0 评论 -
C++中的四种cast强制类型转换
为了克服C中强制类型转化带来的风险,C++引入了四种更加安全的强制类型转换运算符,分别是const_cast、static_cast、reinterpret_cast和dynamic_ccast,作用和区别如下:const_cast用法如下:int n = 5;int *k1 = const_cast<int*>(&n); //指针*k1 = 1;int &k2 = const_cast<int&>(n); //引用k2 = 2;con原创 2020-08-14 17:05:43 · 790 阅读 · 0 评论 -
C++的STL使用以及底层原理(主要是vector、set、map、multimap、unordered_map)
本篇文章先对 STL的常用函数和使用方法进行介绍,再介绍各个标准库的底层实现原理,总结于侯捷大佬的STL源码分析以及视频。先引用一下侯捷大佬的话:“使用一个东西,却不明白它的道理,并不高明。”这也是写这篇文章的原因,记录的同时希望能给别人提供一些帮助。Vector相关快捷好用的初始化方式:int a[6]={1,2,3,4,5,6};vector<int> v=(a,a+6);//遍历vec,C++11新特性for(auto iter:vec) cout<<原创 2020-06-14 18:00:21 · 1199 阅读 · 1 评论