分类: C++

13 篇文章

哲学家吃饭 and 顺序吃法
不按顺序吃法,将死锁的“循环等待”条件破坏即可,我的做法是奇数先拿左手筷子,偶数先拿右手筷子。 代码如下 #include <iostream> #include <thread> #include <mutex> #include <vector> #include <set> #inc…
Linux的文件和时间操作
Linux时间操作 UNIX操作系统根据计算机产生的年代把1970年1月1日作为UNIX的纪元时间,1970年1月1日是时间的中间点,将从1970年1月1日起经过的秒数用一个整数存放。 time_t time_t用于表示时间类型,它是long类型。表示从1970年1月1日0时0分0秒到现在的秒数。 time() time()用于获取操作系统当前时间…
静态库和动态库
先这样 静态库 然后编译成静态库 静态库的制作和使用流程如下: 1)制作静态库 g++ -c -o lib库名.a 源代码文件清单 2)使用静态库 g++ 选项 源代码文件名清单 -L库文件所在的目录名 -l库名 本例的使用过程如下: [wsm@localhost tools]$ g++ -c -o libpublic.a public.cpp […
C++状态机
803 项目里面的subproc用到了状态机。上报平台时终端会切换不同的报文,这里就用上了状态机,很妙!这个插件的整体流程我写在《苏标上报协议流程》里面,这篇文章仔细地写下状态机。 整体流程如下: 为什么用状态机 优雅!其实这个插件的功能用switch也可以,但是这样略显臃肿。状态机用到了C++的继承、虚函数,初次看到有些惊艳,原来代码还能这么写!…
友元
友元有两种:友元函数 和 友元类。 友元的作用是:在类的成员函数外部直接访问对象的私有成员 友元函数 友元函数内部可以访问该类对象的私有成员。既可以是全局函数、又可以是其它类的函数(public的函数)。 #include<iostream> using namespace std; class CCar; //提前声明CCar类,以便…
Tcp抓包
1、使用tcpdump 和 Wireshark 先输入 tcpdump -i eth0 icmp and host 183.232.231.174 -w ping.pcap 再在另一个命令框输入 ping -I eth0 -c 3 183.232.231.174 再在读取的界面ctrl c结束,不能是ctrl z,得到文件 ping.pcap 然后…
智能指针
参考 http://t.csdn.cn/guyQ2 https://zhuanlan.zhihu.com/p/151744661 https://mp.weixin.qq.com/s/n8O0Xn8hqpa5On-h8Zlcbg 为什么有智能指针 C++使用内存的时候很容易出现野指针、悬空指针、内存泄露的问题。所以C++11引入了智能指针来管理内存…
C++进阶
一、内容提纲 原来写的,图床挂了 二、对象被优化以后才是高效的C++编程 1. 对象使用过程中背后调用了哪些方法 #include <iostream> using namespace std; class Test { public: Test(int a = 10) :ma(a) { cout << "Test…
C++基础
第一章 内存模型和编译链接 1. 掌握进程虚拟地址空间区域划分 编程语言产生:指令+数据 exe 磁盘加载到内存,不可能直接加载到内存。 x86系统:linux系统会给当前进程分配一个 2^32 大小的空间 4G 它不存在,你却看得见,它是虚拟的。 0x00000000 ~ 0xC0000000 用户空间 user space 3G 0xC0000…
C++ 语法 | 长期更新
小括号里从左往右 int x, y, z; int a = (x = 10, y = 40, z = x + y); cout << z << ' ' << a; //50 50 宏展开 #include <iostream> #define MA(x) x*(x-1) using…