`
wengshanjin
  • 浏览: 22669 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
#include <stdlib.h> #include <string.h> class TSimpleString { public: static const size_t npos; TSimpleString() : m_pStorage(NULL) {} TSimpleString(const TSimpleString& s) { assign(s.m_pStorage); } TSimpleString(const char * s, size_t n = npos) { assign(s, n); } bool ...
class TSimpleString { public: typedef char charT; TSimpleString() : m_pStorage(NULL) {} ~TSimpleString() { clear(); } TSimpleString(const TSimpleString& p) { reset(p.m_pStorage); } TSimpleString(const charT * pStorage) { reset(pStorage); } TSimpleString & operator = (const TSi ...
这两天要做一个linux动态链接库.so文件,开始我选择用C++编写linux动态链接库,但在调用该链接库运行时会提示symbol找不到,如果用C语言编写动态链接库运行时就可以得到正确的结果。开始还以为创建linux动态链接库so文件不能用c ...
extern "C"表示编译生成的内部符号名使用C约定。     C++支持函数重载,而C不支持,两者的编译规则也不一样。函数被C++编译后在符号库中的名字与C语言的不同。例如,假设某个函数的原型为:  void foo( int x, int y ); 该函数被C编译器编译后在符号库中的名字可能为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“mangled name”)。_foo_int_int这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的 ...
    今天看2008年3月份《程序员》看到有一篇文章挺有意思,题目是:让CPU占用率曲线听你指挥《编程之美--微软技术面试心得》节选。刚看到题目,感觉很难很不可思议。往下看,弄清楚几个问题后,题目就没有那么难了。 2.4Ghz CPU表示每秒钟有2.4*10的9次方个时钟周期 一个空循环写成汇编代码后有5条指令 每个时钟周期大概可以执行2条汇编指令 Windows的调度时间片约为10毫秒 CPU占用率等于CPU忙的时间和刷新周期总时间的比例 原文出自:让CPU占用率曲线听你指挥
    今天,某同事向我反应,我写的程序有问题。出问题的大致功能是这样的,我需要在不修改原文件的情况下,备份一个新的文件出来(新文件最后一小部分内容还保存在内存)。实现方法的方法很简单,读取旧文件,然后将内容写到新文件,读取完旧文件后,再将内存部分内容写到新文件。现在问题出来了,备份的新文件比旧文件小很多,只看到一小部分内容(我猜是原先保存在内存的那部分)。在同事的电脑上测试,每次都可以重现,但我在我的电脑上测试总是无法重现。没办法,只能在单元测试工具上添加一个unit test case来跟踪测试。重现了,可以重现了,仔细跟踪,原因是这样的...    首先,为了不让其他线程修改新文件,我以m ...
//mytest.cpp int main(int argc, char * argv[]) { //line 120 const int N=10; // # of elements in array const int g_nLargeRange = 500 * 1024 * 1024; cout << "Start of tests" << endl; int *p1 = new int(1); // use to cause leak int *p2 = new int[N]; ...
#define Conn(x,y) x##y ##表示x连接y,举例说: int  n = Conn(123,456);  结果就是n=123456; char* str = Conn("asdf", "adf")结果就是 str = "asdfadf"; #define ToChar(x) #@x #@表示给x加上单引号,结果返回是一个const char。举例说: char a = ToChar(1);结果就是a='1'; 做个越界试验char a = ToChar(123);结果是a='3'; 但是如果你的参数超过四个字符,编译 ...
1. 给你n个数,其中有且仅有一个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那一个数。 2. 给你n个数,其中有且仅有两个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那两个数。 1. 从头到尾异或一遍,最后得到的那个数就是出现了奇数次的数。这是因为异或有一个神奇的性质:两次异或同一个数,结果不变。再考虑到异或运算满足交换律,先异或和后异或都是一样的,因此这个算法显然正确。 2. 从头到尾异或一遍,你就得到了需要求的两个数异或后的值。这两个数显然不相等,异或出来的结果不为0。我们可以据此找出两个数的二进制表达中不同的一位,然后把 ...
参考: 计数排序算法 特性: 只用于无符号整数,对于有符号的整数可以通过对每个数组元素都加减一个数解决。 通过计算数组元素的最大、最小值得到统计数组的大小 需要使用额外的空间,空间大小是(元素的最大值-元素的最小值) 当待排序数组内有大量重复的数值时使用计数排序算法较有优势 时间复杂度是max( O(元素的最大值-元素的最小值), O(n) ) 空间复杂度是max( O(元素的最大值-元素的最小值), O(n) ) #include <iostream> #include <vector> #include <time.h> typed ...
引用root@t225 libexec]# perl -MMIME::Base64 -e  'print encode_base64(&quot;123&quot;)' MTIz [root@t225 libexec]# perl -MMIME::Base64 -e  'print decode_base64(&quot;MTIz&quot;)' 123 [root@t225 libexec]#
我也能做CTO之程序员职业规划 Java程序员,上班那点事儿 世界因你不同:李开复自传 自己动手写搜索引擎 架构之美
2007年度最有趣味的网站大全 2009年IT行业十大战略技术 2010年IT行业十大战略技术 云计算上榜 2009年9大最热门IT技能 云计算还处于初级阶段 云计算推广的是互联网新理念——专访Google中国研究院副院长张智威 山雨欲来风满楼——云计算趋势一览 日本,印度,美国,中国四国程序员的比较 腾讯的创始人们 Internet 技术演变图 最受欢迎中国技术博客评选(PB50)结果公布 09胡润IT富豪榜:马化腾239亿财富居榜首
技术人员提升为技术管理人员后的注意事项 话说程序员的职业生涯 绝望比贫穷更可怕 挑水别忘了挖井,上班也可以创业 小心电脑 提防被炒 八种人将被淘汰,你在里面吗 小富靠勤奋,中富靠机遇,大富靠智 ...
需求核对表-摘自《代码大全》 架构核对表-摘自《代码大全》 构建实践核对表-摘自《代码大全》 结对编程 Code Review中的几个提示 软件项目管理实践之日计划 关于23种设计模式的有趣见解 优化和架构之服务切分 系统程序员成长计划-写得又快又好的秘诀 我的TDD实践:可测试性驱动开发(上)   很多时候,我就是这样做的 我的TDD实践:可测试性驱动开发(下) 架构就是关注点分离
Global site tag (gtag.js) - Google Analytics