- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 第21章 Wireshark初步使用
概述混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。开启混杂模式入口:捕获 – 选项。
2024-07-01 20:57:48
375
原创 第16章 网络io与io多路复用select/pool/epool
网络IO复用是指在单线程或少数线程的情况下,通过一种机制同时监控多个IO流的状态,当某个IO流有数据到达时,就通知相应的线程进行处理。其中,select是一种比较常用的IO多路复用技术,它可以同时监控多个文件描述符,当某个文件描述符就绪(一般是读就绪或写就绪)时,就会通知应用程序进行相应的操作。poll是一种常见的IO多路复用技术,它可以同时监视多个文件描述符,当其中任意一个文件描述符就绪时,就会通知应用程序进行相应的操作。
2023-12-13 23:22:27
1081
原创 第18章 C++11标准库(STL)
STL定义了强大的、基于模板的、可复用的组件,实现了许多通用的数据结构及处理这些数据结构的算法。其中包含三个关键组件——容器(container,流行的模板数据结构)、迭代器(iterator)和算法(algorithm)。STL容器,可将其分为四类:序列容器、有序关联容器、无序关联容器、容器适配器序列容器:有序关联容器:无序关联容器容器适配器:序列容器描述了线性的数据结构(也就是说,其中的元素在概念上” 排成一行"), 例如数组、向量和 链表。关联容器描述非线性的容器,它们通常可以快速锁定其中的元素。这种
2023-12-06 04:00:00
1042
原创 第19章 正则表达式 - C++
正则表达式库提供表示正则表达式的类,正则表达式是一种用于在字符串中匹配模式的微型语言。目标序列。为模式而搜索到的字符序列。这可以是二个迭代器所指定的范围、空终止字符串或一个std::string。模式。这是正则表达式自身。它确定构成匹配者。它是从带特定语法的字符串构成的std::basic_regex 类型对象。匹配的数组。关于匹配的信息可作为std::match_results类型对象获取。替换字符串。这是确定如何替换匹配的字符串。
2023-12-05 21:37:26
613
原创 第17章 匿名函数
如果捕获列表为[&],则表示所有的外部变量都按引用传递给lambda使用;如果捕获列表为[=],则表示所有的外部变量都按值传递给lambda使用;匿名函数构建的时候对于按值传递的捕获列表,会立即将当前可以取到的值拷贝一份作为常数,然后将该常数作为参数传递。Lambda捕获列表总结[]空捕获列表,Lambda不能使用所在函数中的变量。[names]names是一个逗号分隔的名字列表,这些名字都是Lambda所在函数的局部变量。默认情况下,这些变量会被拷贝。
2023-12-05 21:35:38
968
2
原创 第9章 windows10安装boost库
第9.1节 boost库下载和安装boost官网地址https://www.boost.org/,进入官网点击图片中框出来部分。进入下载页面,下载所需要的版本,我现在下载的版本为1.83.0,下载的是windows 版本boost_1_83_0.7z。第9.2节 boost库安装下载的文件解压之后如下图所示安装步骤a. 打开PowerShell 窗口 打开cmd 窗口,并输入powershell 指令。b. 切换至Boost 解压目录,执行如下命令c. .\bootstrap
2023-11-27 22:51:53
912
原创 第7章 左值/右值引用
可以从2个角度判断:· 左值可以取地址、位于等号左边;· 而右值没法取地址,位于等号右边。int a = 6;· a可以通过 & 取地址,位于等号左边,所以a是左值。· 6位于等号右边,6没法通过 & 取地址,所以6是个右值。再举个复杂点的例子struct A {a_ = a;} int a_;A a = A();· 同样的,a可以通过 & 取地址,位于等号左边,所以a是左值。· A()是个临时值,没法通过 & 取地址,位于等号右边,所以A()是个右值。
2023-03-23 22:04:26
143
原创 第6章 C++智能指针
智能指针解决的问题(1)内存泄漏:内存手动释放,使用智能指针可以自动释放(2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题C++11中的智能指针种类(1)unique_ptr独占对象的所有权,由于没有引用计数,因此性能较好。(2)shared_ptr共享对象的所有权,但性能略差。(3)weak_ptr配合shared_ptr,解决循环引用的问题。
2023-03-23 21:49:10
705
原创 第4章 并发操作的同步
本章的目的是学会如何使用:条件变量、线程闩、线程卡和future以等待事件。事件等待的一个小故事:坐火车下车,最理想是等到下车时候有个列车员通知一下你。下车这个就是等待事件。
2023-02-21 08:18:03
451
原创 第10章 Boost封装线程池
主要内容:第10.1节 简单使用Boost封装线程池,任务函数为无返回值,并且无参数的第10.2节 简单使用Boost封装线程池,任务函数为无返回值,并且有参数的,参数个数固定第10.3节 简单使用Boost封装线程池,任务函数为无返回值,并且有参数的,参数个数非固定第10.4节 简单使用Boost封装线程池,返回任务函数处理的值
2023-01-03 21:48:11
434
原创 第3章 测试框架GoogleTest 内存泄漏测试
测试应该是独立的和可重复的。调试一个由于其他测试而成功或失败的测试是一件痛苦的事情。googleTest通过在不同的对象运行测试来隔离测试。当测试失败时,googletest允许您单独运行它以快速测试。测试应该很好地的“组织”,并反应出测试代码的结构。googletest将相关测试分组到共享数据和子例程的测试套件中。这种通用模式很容易识别,并使测试易于维护。当人们切换项目并开始在新的代码库上工作时,这种一致性尤其有用。测试应该是可移植到和可重用的。谷歌有许多与平台无关的代码;
2022-12-20 10:19:58
844
1
原创 第13章 Windows安装CMake
CMake是一个被广泛使用的、开源免费并且完全跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
2022-12-12 22:00:28
697
原创 VS2019安装Qt Tool后出现‘visx‘加载失败。
出现问题的报错如下:该问题是VS2019版本太低,与安装的qt 工具插件不匹配,升级VS到最新版本就可以了。
2021-07-29 09:19:12
441
原创 00003.七大软件架构设计原则
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档00003.七大软件架构设计原则前言一、开闭原则1.开闭原则的定义2. 使用开闭原则解决实际问题二、依赖倒置原则1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:软件设计的七大架构设计,指导着软件设计的。提示:以下是本篇文章正文内容,下面案例可供参考一、开闭原则1.开闭原则的定义开闭原则(Open-Closed Principle, OCP)指一个软件实体如类,模块和函数应对扩展开放,对修改封
2021-05-13 09:40:35
286
2
原创 40001.C++socket网络编程
40001.C++socket网络编程前言一、介绍1.1 内容介绍二、使用步骤1.引入库2.读入数据总结前言socket编程提示:记录了socket编程的笔记一、介绍1.1 内容介绍跨平台编程WindowsVc++Dll动态库LinuxMakefileSo动态库C++11多线程库C++11正则表达式TCP/IP介绍TCP/IP 协议讲解网络包抓包分析在windows和linux系统之间配置共享Socket系统socket库介绍w.
2021-05-07 22:45:15
394
8
原创 000001.VS2019如何生成windows动态链接库
000001.VS2019如何生成windows动态链接库前言一、制作dll库:1. 新建项目——动态链接库(DLL)2. 指定名称和位置,创建3. 添加好自己写好的test.cpp和test.h文件4. test.cpp文件最前面包含:5. test.h文件中声明的函数或类前加:6. 生成解决方案6.1 更改输出目录7. 最后点击生成——生成解决方案(注意不要运行,运行会报错的)。总结前言提示:在window10操作系统中,通过VS2019生成windows下.dll动态链接库。一、制作dl.
2021-05-06 14:29:23
363
1
原创 crt1.o:在函数‘_start’中: (.text+0x20):对‘main’未定义的引用 collect2: 错误:ld 返回 1
crt1.o:在函数‘_start’中: (.text+0x20):对‘main’未定义的引用 collect2: 错误:ld 返回 1错误原因:如果你写了main函数的话,还是报错,原因是由于再IDE工具中没有将你写的代码保存。
2020-07-14 14:15:22
2184
1
原创 20005.LeetCode 876. 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。
提示: 使用快慢指针。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution...
2020-05-05 14:30:16
211
原创 20001.数据结构 C++ 双向链表
/* 实现双向链表。*/#include<iostream>typedef int ElemType;typedef struct DuLnode { ElemType data; struct DuLnode* prior, * next;}DuLnode, *DuLinklist;bool InitList_L(DuLinklist& L) { ...
2019-10-21 23:11:50
99
原创 20002.数据结构C++ 单向链表
# include<iostream>typedef int ElemType;typedef struct Lnode { ElemType data; struct Lnode* next;}Lnode, *Linklist;bool InitList_L(Linklist& L) { /* 初始化单向链表。 */ L = new Lnode;...
2019-10-19 19:05:43
181
原创 20003.数据结构C++ 顺序表
#include<iostream>#define MaxSize 20typedef int ElemType;typedef struct { ElemType *elem; int length;}SqList;bool InitList(SqList& L) { /* 初始化顺序表,分配空间。 */ L.elem = new int [...
2019-10-19 18:01:26
173
原创 关于《深度卷积》网络中,使用im2rec.py将图像打包为MXNet的RecordIO格式出错
1. 在第一步中出现如下问题:这是由于老版本的写法,而新版本是--list,--recursive默认都是False,如果想打开就是--list=True,--recursive=True。这里默认什么都不写 ,所以命令格式如下:python im2rec.py --list, --recursive ./train ./train就可以了。2. 第二步生成.idx,.rec文...
2019-09-24 23:57:11
235
原创 在windows下使用MxNet用GPU跑代码时候出现MXNET_CUDNN_AUTOTUNE_DEFAULT to 0 to disable问题
在windows下使用MxNet用GPU跑代码时候出现MXNET_CUDNN_AUTOTUNE_DEFAULT to 0 to disable问题[14:58:40] c:\ci\libmxnet_1533399150922\work\src\operator\nn\cudnn\./cudnn_algoreg-inl.h:107: Running performance tests to fi...
2019-09-13 15:06:49
2403
3
A star.rar
2020-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人