- 博客(41)
- 资源 (19)
- 收藏
- 关注
原创 STL中的queue
直接上菜:#include #include using namespace std;int main(){ queue q; int i = 0; for (i = 0; i < 5; i++) { q.push(i + 1); // 由于只能在一端进行操作, 所以不是push_back, push_front } printf("%d\n", q.size()
2014-12-30 00:13:54 7344 1
原创 STL中的deque介绍--- double-ended queue
deque即双向队列(double-ended queue),是一种在两端开口的连续线性空间,可以高效的在头尾两端插入和删除元素。 在deque中, 我们要尽量避免erase队列中间的元素, 这样效率低。 要erase怎么办? 还是用list吧。 不多说, 来认识一下deque:#include #include #include #define N 10using namespa
2014-12-29 00:11:45 8481
转载 腾讯15年间打败的竞争对手
转载地址:http://www.hnchain.com/news-90152.html 任何科技行业的领导企业,最大的竞争力必然是创新能力,一旦失去这种能力,失败就将不可避免。腾讯亦然。很多童鞋看到这里大概会发出一声冷笑:“腾讯不是只会抄袭?” 但是一家生于草莽,没有爹,没有党的关怀,没有北大清华的水草滋养的企业,到底是怎样的魔法在十五年间做到市值千亿美元,
2014-12-28 13:15:54 10273 2
转载 葵花宝典混华为(纯粹转载, 笑而不评)
只从天涯论坛转载, 不加任何评论和说明。 转载地址:http://bbs.tianya.cn/post-516-48355-1.shtml 除了没有国有股,华为就是个国企,盗亦有道,做个小偷都得有三项纪律八大注意,混国企当然有混国企的不二法则,此宝典总结前辈成败得失,对于老家伙来说,能在华为晃荡没跳楼、没辞职的,自然有自己的路数,全当娱乐,对于即将入职或者刚入职的新员工,
2014-12-28 12:58:48 8609
原创 如何在VC++6.0中设置条件断点?--- 某公司实习生招聘面试试题
曾经玩过条件断点, 但是, 许久不用, 也就忘了, 后来, 在一次面试中, 碰到了这个问题, 当时答得不太好。 下面, 我们来一起看看(以VC++6.0为例): 假设程序为:#include using namespace std;int main (){ int i = 1; int n = 100; int sum = 0; for(i = 1; i <=
2014-12-28 00:16:13 7942
原创 STL中的list小结(面试被问过)
多年前, 去某公司面试, 被问过list和vector, 鉴于之前我们学习过vector, 在本文中, 我们只简要介绍一下list. 我不打算全面介绍list, 因为那是手册应该做的, 下面, 让我们来窥探一下与list相关的小程序吧:#pragma warning(disable: 4786) // 去掉相关warning#include #include #include #in
2014-12-27 22:59:13 7733
原创 某手机厂商是否应该尝试这样去定位手机开机卡死的低概率问题?
买了某厂商的手机, 用着其实还蛮不错, 但会出现低概率开机卡死的问题, 或许是职业习惯的原因, 打算就此时小小地写一下。 低概率问题, 很不好重现和定位, 但又不能忽视。如果死机出现的概率为1/100, 那么100w台手机, 也会有10000太手机有问题, 用户肯定在网上炸开了锅。下面来简要说一下, 比如, 假设手机在启动AAA某块时候, 低概率卡死, 简要代码如下:#
2014-12-26 23:53:36 7487
原创 如何在程序中打开.mp3, .exe, .chm文件? ---介绍一下ShellExecute的用途
下面, 我们看看ShellExecute的重要用途, 用它来打开.mp3, .exe, .chm, 当然啦, 在当前工程中必须有这些文件。#include int main(){ ShellExecute(0, 0, "beauty_voice.mp3", 0, 0, 0); return 0;} 上面程序会唱歌。#include int main(){
2014-12-26 22:59:04 8291
原创 如何利用多线程写一个简单的定时器?
先来看一个简单的程序, 实现一个定时器来定时调用test函数:#include #include using namespace std;void test(){ cout << "test" << endl;}DWORD WINAPI ThreadFun(LPVOID pM){ int timeVal = *(int *)pM; int start = 0; whi
2014-12-26 00:28:11 9593
原创 SetTimer设置后没法调用定时器函数(回调函数)吗?
我们先来看一个简单的程序:#include <iostream>#include <windows.h>using namespace std;void myTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime ){ cout << "hello" <<...
2014-12-25 23:50:53 11832 2
原创 C++对象切片和对象切片的阻止(纯虚函数让编译器强迫程序猿修改有对象切片的代码)
下面, 我们来看一下C++中最简单的多态程序:#include using namespace std;class Animal{private: int weight;public: virtual void eat() { cout << "eat" << endl; }};class People : public Animal{private:
2014-12-24 00:14:04 8629 1
原创 delete void*形式的指针是非常危险的
先看一个程序:#include using namespace std;class A{public: A() { cout << "constructor" << endl; } ~A() { cout << "destructor" << endl; // 没有被调用 }};int main(){ void *p = new A; // void
2014-12-23 00:13:35 7765 2
原创 (this->*p)();的理解
下面的程序是很常见的, 来熟悉一下:#include using namespace std;class A;void (A::*p)(); // 指向类的成员函数class A{ void print() { cout << "hello world" << endl; }public: A() { p = &A::print; } void fun
2014-12-22 23:52:36 7728 1
原创 代码写在一行不方便单步调试
先看看示例:#include using namespace std;int main(){ if(0) cout << 0 << endl; return 0;} 这个时候, 在if处下一个断点, 单步调试的时候, 根本就不知道if里面的表达式是真还是假, 所以, 建议改为如下较好的风格:#include using namespace std;int m
2014-12-22 23:24:14 7742 1
原创 获取操作系统启动到现在的时间---GetTickCount
直接上代码:#include #include // for GetTickCount#include // for Sleepint main(){ int start = GetTickCount(); printf("%f\n", start / (3600000.0));// 操作系统运行到现在的时间 Sleep(2000); int end = GetTic
2014-12-21 21:55:47 15574 1
原创 利用gethostname获取主机名
直接上菜:#include#include#pragma comment(lib,"ws2_32.lib") // 静态库 int main(){ WORD v = MAKEWORD(1, 1); WSADATA wsaData; WSAStartup(v, &wsaData); // 加载套接字库 char hostName[100] = {0};
2014-12-21 21:54:39 8800 8
转载 正确计算linux系统内存使用率 (我今天刚好碰到这个问题, 故转载一下)
测试同事提了一个问题单, 错误地理解了内存使用率, 下面我们来看看正确的理解。 转载地址:http://www.sealinger.com/archives/406/ 作者: sealinger 时间: July 8, 2012 分类: 都学杂了linux系统内存实际使用率图中的例子很典型,就是:多数的
2014-12-19 00:37:01 8708
原创 不区分大小写的strCaseStr---改造strstr
直接上菜:#include using namespace std;char *strCaseStr(const char *str1, const char *str2){ if(NULL == str1 || NULL == str2) { return NULL; } int len1 = strlen(str1); int len2 = strlen(str2)
2014-12-19 00:23:49 9840
原创 C/C++库函数: 将字符串转换成小写strlwr/大写strupr(我很少用, 所以记录一下)
#include using namespace std;int main(){ char szTest[] = "abC"; cout << strlwr(szTest) << endl; cout << szTest << endl; cout << strupr(szTest) << endl; cout << szTest << endl; return 0;}
2014-12-18 23:50:07 20091 9
转载 什么是数字签名和数字证书(好清楚, 赞一个)?
原文地址:http://www.youdzone.com/signature.html 翻译地址(阮一峰):http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html 超赞
2014-12-18 00:18:50 8040 1
原创 “救命的” svn up -r xxx
某某说, 大家要经常更新代码, 以便尽早发现配置库中代码的异常。 我们知道, 当项目组人数稍多, 提交代码时候,如果没有遵循严格的本地构建, 势必会将错误代码提交到配置库中, 或者漏提交一些文件。 事实上, 大家也经常搞错, 配置库中的代码也经常有问题, 这样的话, 如果常常更新, 错误的代码就进入了自己的工作目录, 非常影响自己的工作效率。 在这一点上,我是深有体会的。 遇
2014-12-18 00:17:31 10538 1
原创 Windows添加路由:route add 173.18.18.0 mask 255.255.255.0 172.18.18.1
添加路由是基本技能, 假设自己网关是172.18.18.1, 要访问别的同事的173.18.18.222的pc, 但是又ping不同, 这时候同事说, 你加个路由吧。 好, 那就在cmd中加吧, 加了之后就能ping通过了, 基本技能, 聊作记录:route add 173.18.18.0 mask 255.255.255.0 172.18.18.1
2014-12-15 23:25:58 58210 1
原创 理解一下指针数组和二维数组
#include using namespace std;int main(){ int a[] = {1, 2, 3}; cout << sizeof(a) << endl; // 12 cout << sizeof(a[0]) << endl; // 4 // 指针数组 const char *p[] = {"ab", "def", "adgbgdegsdggf"}; cout <<
2014-12-14 22:09:56 7334 1
原创 如何利用openssl来进行base64编解码?
openssl的用法, 请见之前博文, 下面仅仅给出base64编解码的代码:#include #include #pragma comment(lib, "libeay32.lib") #pragma comment(lib, "ssleay32.lib") // 可以注释掉using namespace std;// base64编码int Base64Encode(con
2014-12-14 16:13:25 11042 3
原创 如何利用openssl来计算md4, md5, sha1, sha256, sha384, sha512等常用哈希值?
openssl的库的用法, 前面已经介绍了, 所以不再啰嗦, 直接给出代码:// openssl的库的用法, 前面已经介绍了, 所以不再啰嗦, 直接给出代码#include #include #pragma comment(lib, "libeay32.lib")#pragma comment(lib, "ssleay32.lib") // 可以注释掉using namespace
2014-12-14 13:29:34 15444 3
原创 VC++6.0环境下利用openssl编程入门(以计算md5值为例)的全解析------openssl库直接给大家弄好, 省得麻烦大家去编译
做软件开发的人, 基本都应该听说过大名鼎鼎的开源软件openssl, 下面, 我们来入门openssl编程吧。 初学者如果想了解openssl编程, 最不喜欢是: 还没有懂怎么利用openssl写代码, 不得不学openssl本身的编译。 在本文中, 我直接省略如何编译openssl这个过程, 直接把编译的最后结果(库和文件)提供给大家, 希望大家能用得上。先用openssl来玩一下, 感觉有趣的
2014-12-14 02:24:37 17753 27
原创 BCB对如何操作ini文件?
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,在实际开发中, ini文件的应用也是非常广泛的。 下面来利用BCB来操作一下ini文件://-------------------------------------------------------------------
2014-12-14 00:08:06 11073 1
原创 BCB如何获取.exe所在的路径?
直接上代码://---------------------------------------------------------------------------#include #pragma hdrstop#include "Unit1.h"//-----------------------------------------------------------------
2014-12-14 00:06:16 10891
原创 什么是缓冲区?
缓冲区, 说白了, 就是一个中介。 比如你要租一个房子, 刚好房子的主人也要出租房子, 你们可以直接联系, 但问题就在于: 房子的主人可能没有时间和你扯太多, 你也没有时间和房子的主人扯这扯那, 这个时候, 中介产生了。 中介有时间和你扯皮, 中介和房子的主人也提前沟通好。 在上面的例子里, 你通过中介一次性把信息反馈给房子主人, 房子主人把自己的要求通过中介一次性给你。 本来,
2014-12-12 23:04:37 18477
原创 某设备sftp client不能向sftp server传递文件的"bug"的定位过程(碰到过2次以上)
某设备往sftp server上传文件的功能一直很正常, 但是, 测试的同事发现, 在她那里, 某设备无法往sftp上正常地传文件, 叫我过去现场确认一下。 我知道, 这个功能一直是ok的, 为什么现在不ok了呢? 现场去确认了一下, 发现还真是问题。 这个时候, 我没有说, 那你先提单吧! 因为我初步估计, 这个肯定是环境问题, 不能功能问题, 如果测试同事提单了, 到时候肯定又重现不了问题,
2014-12-07 22:00:31 7956
原创 客户端连不上服务端的"bug"定位过程
测试同事反馈, 某客户端连接不上某服务端, 准备提单(问题单), 但还是让我去现场确认一下。 我去一看, 发现客户端ping不通服务端, 那自然是没法连接啦。 一看, 是网线松动了。 算好让我去看看啊, 否则又要提一个无法重现的问题单或者是低概率问题单(通常把人搞得半死不活)。 在这里, 我并没有指责测试同事, 任何人都会极其偶尔地犯这样的错误。 作为测试的人, 应该学会排除基本
2014-12-07 21:17:10 8474 1
原创 多线程环境下安全的消息队列存取---利用信号量
前面几篇博文中, 我们一直在讨论异质链表消息队列问题, 在本文中, 我们继续来探讨这一问题, 在多线程环境下, 考虑线程同步问题, 代码如下(我用Sleep(20);来故意捣乱):#include #include using namespace std;#define Rectangle MyRectangle // 避免Rectangle与Windows中的Rectangle冲突
2014-12-06 00:59:51 9346
原创 多线程环境下不安全的消息队列存取---线程不同步会造成隐患
前面, 我们把消息队列存取都放在主线程中, 而在实际应用中, 很多时候, 存消息队列在主线程, 取消息队列在其他线程(如网络线程)。 下面, 我们将之前的程序改为多线程程序:#include #include using namespace std;#define Rectangle MyRectangle // 避免Rectangle与Windows中的Rectangle冲突/
2014-12-06 00:17:31 9730
原创 加上#include<windows.h>后出现的奇葩错误
先来看一个没错的程序:#include using namespace std;struct Rectangle { int width; int height;};int main(){ Rectangle rect; return 0;} 加上#include就有错:#include #include using namespace std
2014-12-04 23:47:23 16203 1
原创 基类的虚函数没有实现而引起的错误
先看一个错误的程序:#include using namespace std;class Basic{public: virtual void fun(); };class A : public Basic{public: void fun() { cout << "hi" << endl; }};int main(){ A a; return 0
2014-12-04 23:24:27 8321 1
原创 将消息推入消息队列并从消息队列中取出------利用异质链表和C++的多态性
前面我们介绍了异质链表, 现在, 我们继续来深究其应用, 我们可以把Integer, Point, Rectange的对象看成是包装好的消息, 下面我们来看看如何将消息塞入消息队列, 并从消息队列中取出。 顺便说一下, 消息队列在实际开发中是非常常见的, 我们经常需要把任务推入消息队列、从消息队列中取出。 是该上代码了(为了简便起见, 我没有考虑堆内存的释放):#include using
2014-12-04 23:10:39 8489
原创 看到这种单例, 也是醉了
好吧, 第一次见这种单例, 来瞧瞧:#include using namespace std;class A {private: A() // 之所以设置为private, 是因为为了防止外部直接生成对象 { cout << "A" << endl; }public: // 看到这种单例, 也是醉了。 不管咋样, 又多知道了一种方式 static
2014-12-03 22:33:24 7370
原创 从公司回来忘带手机没有闹铃明早起来不了该怎么办?--- 花5分钟用ShellExecute写个闹铃即可!
从公司回来, 忘记带手机, 又没有闹铃, 明天起来不了, 咋办? 回公司去取手机? 不想去。 在楼下买个闹钟? 觉得没必要。 好吧, 写个简单的C语言程序, 在睡觉的时候把它跑起来即可, 我刚验证了一下, 没啥问题#include int main(){ int i = 0; for(i = 0; i < 60 * 7; i++) // 7小时, 睡7个小时足够啦! { Sle
2014-12-03 22:14:32 8272 2
原创 答辩周年记------与刚入职场/即将答辩的程序猿们共勉
每个公司的制度、运作、规模、文化、氛围等各方面都不尽相同, 所以在本文中, 我也不以偏概全, 仅仅根据自身的经历来谈一下试用期的相关事情。我司的正规流程是6个月的试用期, 我在入职后四个月参加答辩, 第五个月转正。 从去年答辩到现在, 刚好一周年, 若有所思, 于是挥笔写一篇自己的感受, 与各位职场新鸟们共勉。我以一个过来人的身份, 抛砖引入地聊聊试用期和答辩准备。 先说
2014-12-03 00:31:43 12313
原创 聊聊malloc和new的区别---当malloc和string相遇时, 容易出错
在学习C语言的时候, 我们学了malloc, 后来学习C++的时候, 又学了new, 那么malloc和new有什么区别呢? 首先, malloc是一个库函数, 返回值是void *形式的, 而new是一个运算符, 返回值类型与new的对象/变量的指针相同。 其次, new和delete的实现实际上是调用了malloc/free的。
2014-12-02 22:28:03 9865 8
linux protobuf安装文件
2016-11-04
linux tree命令的源码
2015-11-01
编译好的openssl库和头文件
2014-12-14
入门数据库sqlite3的最佳实践资料
2014-08-12
在Windows下学习Linux命令
2013-08-08
音频处理软件Gold Wave
2013-07-17
H.264visa软件
2013-07-13
YUVviewer :原始的YUV视频的播放器
2013-06-24
经典的C语言编译器:TC2.0
2013-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人