- 博客(74)
- 资源 (10)
- 收藏
- 关注
转载 STL 迭代器失效性问题总结
STL 迭代器失效性问题总结我们讨论 vector, deque, list, set, map 的迭代器失效问题。vector 迭代器当插入一个元素后,插入点之前的迭代器如果未扩容则不受影响,插入点之后的迭代器失效;当插入一个元素后,capacity 如果有变化,则容器需要重新分配内存,所有迭代器都会失效;当进行删除操作后,指向删除点及之后元素的迭代器全部失效。deque 迭代器在容器 begin/end 插入操作所有迭代器不受影响;在容器非 begin/end 的位置插入和删除操作都会
2021-02-28 16:41:43
320
转载 windows IO模型分析
重叠I/O模型的另外几个优点在于,微软针对重叠I/O模型提供了一些特有的扩展函数。当使用重叠I/O模型时,可以选择使用不同的完成通知方式。采用事件对象通知的重叠I/O模型是不可伸缩的,因为针对发出WSAWaitForMultipleEvents调用的每个线程,该I/O模型一次最多都只能支持6 4个套接字。假如想让这个模型同时管理不止64个套接字,必须创建额外的工作者线程,以便等待更多的事件对象。因为操作系统同时能够处理的事件对象是有限的,所以基于事件对象的I/O模型不具备伸缩性。使用完成例程通知的..
2021-02-25 18:43:26
201
转载 Mutex和Critical Section的异同点
http://hi.baidu.com/melee2009这篇文章很细致的比较了Mutex和Critical Section的差异。Mutex和Critical Section都是主要用于限制多线程(Multithread)对全局或共享的变量、对象或内存空间的访问。下面是其主要的异同点(不同的地方用绿色表示)。 Mutex Critical Section 性能和速度 慢。 Mutex是内核对象,相关函数的..
2021-02-25 09:30:24
152
转载 BitTorrent协议分析六
ul int process_handshake_msg(Peer *peer,unsigned char *buff,int len)功能:处理接收到的一条握手消息。参数:从peer接收到这条握手消息;buff指向握手消息;len为buff的长度。函数实现的代码如下:int process_handshake_msg(Peer *peer,unsigned char
2018-01-08 14:50:28
695
1
转载 BitTorrent协议分析五
peer.c文件的头部包含的代码如下:peer.c#include #include #include #include "peer.h"#include "message.h"#include "bitfield.h" extern Bitmap *bitmap; // 指向当前与之进行通信的peer链表
2018-01-08 14:48:56
597
转载 BitTorrent协议分析四
4.2 位图管理模块的设计和实现对位图的操作主要在bitfield.h和bitfield.c中,负责创建位图,设置和获取位图某一位的值,保存位图等。bitfield.h#ifndef BITFIELD_H#define BITFIELD_H typedef struct _Bitmap { unsigned char *bitfi
2018-01-08 14:47:43
750
转载 BitTorrent协议分析三
各个模块的设计和实现 4.1 种子解析模块的设计和实现解析种子文件主要在parse_metafile.h和parse_metafile.c中完成。parse_metafile.h文件的内容为:parse_metafile.h#ifndef PARSE_METAFILE#define PARSE_METAFILE //
2018-01-08 14:46:46
663
转载 BitTorrent协议分析二
接一客户端与一个peer建立TCP连接后,首先向peer发送握手消息,peer收到握手消息后回应一个握手消息。l 握手消息是一个长度固定为68字节的消息。消息的格式如下:消息格式中一些参数的含义如表13-9所示。表13-9 握手
2018-01-08 14:44:11
2073
转载 BitTorrent协议分析一
转载说明:原文地址:http://blog.sina.com.cn/s/blog_4ab2ba570100y7fv.html 概要介绍2.1BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。而在FTP、HTTP协议中,每个下载者从FTP或HTTP服务器处下载自己所需要的文件,各个下载者之间没有交互。当非常多的用户同时访问和
2018-01-08 12:05:32
5859
原创 VS2013 IDE 编译7zip
只打算编译Format7zF这部分。解压好7-Zip 16.04版的源码后,进入\CPP\7zip\Bundles\Format7zF,这里有Format7z.dsw和Format7z.dsp这两个VC6.0的工程文件。打开Format7z.dsw,VS2013会自动帮我们转换到可用的工程文件格式。以下是重点~~~~1.选择解决方案里的”7Z“项目后
2017-12-29 16:42:37
557
转载 #define中#和##的作用
#define f(a,b) a##b #define d(a) #a #define s(a) d(a) void main( void ) { puts(d(f(a,b))); puts(s(f(a,b))); } 输出结果: f(a,b) ab分析: ##把两个符号连起来 #a指把a当成符号,就是把#后面的
2017-12-22 14:32:08
217
翻译 windows 窗口样式
1 窗口样式WS_POPUP弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW子窗口(不能与WS_POPUP合用)WS_MINIMIZE创建窗口拥有最小化按钮WS_MINIMIZEBOX创建窗口拥有最小
2017-12-15 16:54:16
2173
转载 设计模式六大原则(6):开闭原则
转载地址:http://blog.youkuaiyun.com/zhengzhb/article/details/7296944定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要
2017-10-31 23:51:12
158
转载 设计模式六大原则(5):迪米特法则
转载地址:http://blog.youkuaiyun.com/zhengzhb/article/details/7296930定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无
2017-10-31 23:40:14
160
转载 设计模式六大原则(4):接口隔离原则
转载地址:http://blog.youkuaiyun.com/zhengzhb/article/details/7296921定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个
2017-10-31 23:13:17
160
转载 设计模式六大原则(3):依赖倒置原则
转载地址:http://blog.youkuaiyun.com/zhengzhb/article/details/7289269定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作
2017-10-31 22:49:56
162
转载 设计模式六大原则(2):里氏替换原则
转载地址: http://blog.youkuaiyun.com/zhengzhb/article/details/7281833肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T
2017-10-31 22:23:41
159
转载 迈出从3K到1W的重要一步——掌握设计模式
转载地址:http://blog.youkuaiyun.com/zhengzhb/article/details/7247188IT职场的小菜经常有这样的疑问: 为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。 为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥
2017-10-31 17:19:57
221
转载 设计模式六大原则(1):单一职责原则
转载地址:http://blog.youkuaiyun.com/zhengzhb/article/details/7278174定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T
2017-10-31 17:16:31
146
转载 设计模式中类的关系
转载地址: http://blog.youkuaiyun.com/zhengzhb/article/details/7187278在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence) 依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造
2017-10-31 16:04:40
151
转载 C++继承:公有,私有,保护
原文地址:http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,
2017-08-28 15:51:56
215
转载 C/C++程序员应聘常见面试题深入剖析
本文转载来自:http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741367.html 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10
2017-06-17 17:04:49
269
原创 tensorflow安装
先参考tensorflow 官网的安装教程 https://www.tensorflow.org/install/install_linux 1、安装virtualenv ,使用默认的python2就可以sudo apt-get install python-pip python-dev python-virtualenv 2、创建虚拟环境 virtualenv -p /usr/bin/pyth
2017-03-25 22:52:03
528
原创 input子系统学习笔记一:概述
输入设备总类繁杂,包括按键,键盘,触摸屏,鼠标,摇杆等等,它们本身都是字符设备,不过内核为了能将这些设备的共性抽象出来,简化驱动的开发,建立了一个Input子系统.Input子系统分为三层,从下至上分别是输入设备驱动层,输入核心层以及输入事件驱动层.核心层: 高效,无bug,可重用事件处理层: 负责与应用程序交互设备驱动层: 负责与底层输入设备交互事件处理程序是标准的,对于所有的输入类
2016-02-24 16:52:16
410
原创 input子系统学习笔记二:数据结构
主要input通用数据结构 1.input_dev 这是input设备基本的设备结构,每个input驱动程序中都必须分配初始化这样一个结构,成员比较多 struct input_dev {const char *name;const char *phys;const char *uniq;struct input_id id; //与input_handler匹配用的i
2016-02-24 15:19:45
546
转载 汇编控制指令
1. GNU ARM 汇编简介 任何汇编行都是如下结构:[:] [} @ comment[:] [} @ 注释 GNU ARM 汇编中,任何以冒号结尾的都被认为是一个标签,而不一定非要在一行的开始。下面是一个简单的例子,这段汇编程序定义了一个"add"的函数,该函数返回两个参数的和:[cpp] view plaincopy
2015-11-06 11:31:23
1078
1
转载 运行地址和加载地址
http://blog.youkuaiyun.com/ce123_zhouwei/article/details/6990100运行地址和加载地址在连接目标代码时,会提到运行地址和加载地址。这两者有什么区别呢?加载时地址就是程序放置的地址,运行地址就是程序定位的绝对地址,也即在编译连接时定位的地址。如果程序是在flash里运行,则运行地址和加载地址是相同的。如果程序是在ram里运行,但
2015-10-21 20:59:16
417
转载 交叉编译遇到的问题
搞嵌入式真的需要静下心,克服总总的挫败感。。。坚持下去,问题最终都会得到解答。 弄个交叉编译,差点要崩溃了··· 交叉编译出错提示/opt/FriendlyARM/toolschain/4.4.3/libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9'
2015-10-12 16:02:07
695
原创 WIN7 64 安装串口驱动和mini2440USB驱动
win7 64 串口驱动程序网上很容易找到,安装好后,需要重启电脑才行 ,不重启的话,打开串口助手会发生找不到串口。mini2440USB下载驱动http://pan.baidu.com/s/1eQBDfguWIN7 64位在无法正常加载mini2440 USB驱动首先,下载SuperVivi-USB-
2015-10-11 23:11:00
3329
原创 ubuntu设置minicom
1、下载:sudo apt-get install minicom在使用minicom之前,首先要保证你对串口有读/写的权限。我们知道,Linux的设备对应于/dev/目录中的某个文件,串口COM1对应ttyS0,COM2对应ttyS1,使用以下命令来查看你对COM1的权限:$ ls -l /dev/ttyS0crw-rw---- 1 root dialout 4, 64 2009-0
2015-10-09 18:28:16
636
转载 linux 编译内核[scripts/kconfig/dochecklxdialog] 错误
HOSTCC scripts/kconfig/kxgettext.o *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses
2015-10-08 21:20:00
1118
转载 mount.nfs: access denied by server while mounting 解决办法
mount.nfs: access denied by server while mounting 一个解决办法 2011-06-30 17:22:06| 分类: 技术探讨 | 标签:linux 常见问题 服务器 |字号 订阅这两天在搭建嵌入式开发环境,配置好NFS服务器后,遇到了一个很纠结的错误使用 mount -t nfs 127.0.0.1:/home/lz
2015-10-08 15:51:33
1200
原创 xxxxx.so文件缺失
解压logomaker 之后,运行logomaker出现以后问题logomaker: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory网上常见的方法是 方法1:编辑/etc/ld.so.conf文
2015-10-08 15:02:21
761
原创 arm-linux-gcc(ubuntu)安装
在linux平台上安装好的基础上,开始配置arm-linux-gcc,使其正常工作一,安装前准备1,下载并安装arm-linux-gccarm-linux-gcc-4.2.1的版本在http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/这里可以下载,最新版arm-linux-tools-20080623.tar.gz这个可
2015-10-08 14:05:49
567
原创 altium designer 原理图复制出错
复制原理图的时候最后弹出这样的错误InvalidParameter at 2510219C.AdvSch.dll, Base Address: 24C80000.Exception Occurred In Copy方法1:先看看能不能添加本地打印机,要是无法添加打印机,在桌面选中“我的电脑”,鼠标右键选择“管理”; 在“管理”窗口中,
2015-07-23 01:32:00
15106
1
转载 字符匹配函数总结
转自:http://blog.youkuaiyun.com/zdl1016/archive/2009/10/11/4654061.aspx 我想说一句“我日,我讨厌KMP!”。KMP虽然经典,但是理解起来极其复杂,好不容易理解好了,便起码来巨麻烦!老子就是今天图书馆在写了几个小时才勉强写了一个有bug的、效率不高的KMP,特别是计算next数组的部分。其实,比KMP算法速度快的
2014-04-14 16:24:40
645
转载 AT指令-通过串口收发短消息(上,下)
通过串口收发短消息(上)下载本文示例源代码原文出处:http://www.kernelstudio.com/getitem.asp?id=13Q 用串口连接GSM手机发送和接收短消息,在应用程序中如何编程实现?Q 我们打算开发一个基于GSM短消息方式的GPS系统,如何利用SMS进行数据通信?A 首先,我们要对由ESTI制订的SMS规范有所了解。与我们讨论的短
2014-04-11 21:57:06
1894
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人