判断大小端

大小端大端模式:低地址存低字节小端模式:低地址存高字节方法一:联合体代码union t{ int a; char c;};int main(){ t tt; tt.a = 0x000001; if (tt.c == 0x00) cout << "b


面向对象设计的七大原则

单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实


正则表达式

. :匹配任意一个字符,ab.表示abc,abs,abd等[] :匹配括号中任意一个字符,[abc]de可以匹配ade,bde,cde— : 在[]中表示范围,[0-9]表示可以匹配0到9中任意一个字符^ : 在[]的开头,表示匹配除括号中的任意字符[^abc] 表示可以匹配d,e,f等,但不可以


网络编程中的一些API

SOCK函数socket()#include<sys/types.h>#include<sys/socket.h>int socket(int domain, int type, int protocol);domain:AF_INET:表示IPV4网络协议AF_INET6:


使用wireshark获取TCP三次握手网络包

使用ping命令获取IP地址在过滤器中设置目标地址为182.92.187.217和http协议后可以得到数据使用右键追踪tcp流后看到http协议上方有三条tcp连接,即为tcp3次握手其中对于IP协议获取到的报文内容如下Internet Protocol Version 4, Src: 192.1


一些用于同步的锁

互斥锁对于互斥锁,有两种状态:加锁和解锁互斥锁在访问共享资源之前进行加锁,在访问结束后进行解锁加锁后,对于其他访问共享资源的线程,会被阻塞,直到解锁阻塞后会立刻释放CPU资源读写锁读写锁相比于互斥锁有更多的加锁状态:读时加锁,写时加锁,不加锁同时只能有一个线程占有写锁,但是可以有多个线程占用读锁(写


STL中迭代器失效问题

STL容器分为序列式容器和关联式容器:序列式容器:vector、list、queue、deque等关联式容器:set、map、unordered_map、unordered_map等对于序列式容器(list除外),对某节点操作时,会使对应节点及其后续迭代器失效vectorpush_back():在元