- 浏览: 23569 次
- 性别:
- 来自: 广州
最近访客 更多访客>>
最新评论
-
cloudmail:
让程序飞 之 内存工具:valgrind –tool=mass ...
使用Valgrind检测linux上c++内存泄露 -
cloudmail:
检查内存使用情况:valgrind --tool=massif ...
使用Valgrind检测linux上c++内存泄露 -
wyong1021:
电热熔突然通过人头
原创C++笔试题,查找一个字符串类不正确的地方 -
xuqin1019:
PS:好像没有编译错误啊
原创C++笔试题,查找一个字符串类不正确的地方 -
xuqin1019:
12行 改为 : return (p_mStorage==NU ...
原创C++笔试题,查找一个字符串类不正确的地方
文章列表
#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("123")'
MTIz
[root@t225 libexec]# perl -MMIME::Base64 -e 'print decode_base64("MTIz")'
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实践:可测试性驱动开发(下)
架构就是关注点分离