c++
文章平均质量分 62
beginTheWorld
相当于别人读初中的水平我要读大学
展开
-
32位系统与64位系统 C/C++通用代码
c++/C 并没有规定内建数据类型具体size;只规定了一些规则,比如int 长度不必long长数据类型长度数据类型ILP32LLP64char88int3232long3264long long6464short1616pointer32原创 2013-08-23 00:28:59 · 1803 阅读 · 0 评论 -
C++智能指针的非智能
#include #include #include "boost/lexical_cast.hpp"#include using namespace std;class A{public: A() { cout<<"construct A"<<endl; } ~A() { cout<<"delete A"<<endl; }};void fun(){ A原创 2013-11-28 15:38:16 · 701 阅读 · 0 评论 -
小样:内存管理系统实现,提供可持久化功能
基本思想:1.把内存分块管理,这里是把内存分为64字节一块2.下一块的地址,不是存储下一块的地址,而是相对偏移地址,为了持久化,3.把首64字节为保留空间,分别记录 空闲块链表的首地址,使用块链表的首地址首64字节定义struct HeadInfo{ int freeList; int usedList; unsigned int count; int unused[]};块的定义原创 2013-11-22 14:24:22 · 789 阅读 · 0 评论 -
关于c++中模板 T 无法限制的替代方案template< T extends Base>
在泛型编程成,经常要比较元素的大小,但是有时候我们无法完成规定T 必须拥有比较的接口。所以我们这里通过函数指定,T需要提供的比较内容templateint DefauletCMP(T a,T b){ if(a<b) return -1; if(a>b) return 1; if(a==b) { return 0; }}templateclass Test原创 2013-11-21 12:44:30 · 1570 阅读 · 0 评论 -
开方 牛顿迭代公式
牛顿迭代公式设r是f(x) = 0的根,选取x0作为r的初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'原创 2013-09-21 15:42:35 · 1561 阅读 · 0 评论 -
伪随机解决真随机问题
从文件中随机取一行数据如果先统计文件有多少行,再根据rand() % 行数选择对应行也是可以行的,但效率显然会有点低了。有没有一种方法可以只遍历文件一次了?请看代码:[cpp] view plaincopy//从文件中取机选取一行 #include #include #include #include int转载 2013-07-09 21:48:26 · 1060 阅读 · 0 评论 -
在O(1)时间复杂度中,求栈中的最小元素
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(1接下来有n行,每行开始有一个字母Ci。Ci=’s’时,接下有一个数字k,代表将k压入栈。Ci=’o’时,弹出栈顶元素。输出:对应每个测试案例中的每个操作,若栈不为空,原创 2013-09-08 21:21:13 · 1356 阅读 · 0 评论 -
不用+-实现两个数相加
方法一 用逻辑运算a^b 表示a+b 中每位不进位的和,(a&b) 思想是两个数字相加中能分解成不进位的和 + 每一位相加进位a+b = a^b +(a&b)如果a&b==0的时候a+b=a^b;负整数运算也可以,因为补码运算,不存在减法。所以反复迭代,一直到所有的进位为0long add( long a, long b){ long carry原创 2013-09-06 18:40:12 · 2381 阅读 · 0 评论 -
c++如何生成一个不能被继承的类
在java 中final 可以定义 一个类不能被继承,c++中没有这个,但是c++可以实现这个类。大家知道union 是不能被继承的1.union,匿名类union finaClass{public: class { .......。。。。。。。} data;};finalClass finaData;这样匿名类只能用,不能被继原创 2013-08-25 22:16:56 · 554 阅读 · 0 评论 -
你还不知道的sizeof()
C++中,以VS2010为编译环境;在vs的环境下。这里不讲字节对齐的东西,很多写字节对齐的文章。讲编译对象的时候,编译器给对象存储空间加入的数据;1. 类中有vitual 函数时候,会加入一个vfptr指针,只想虚函数表,表中存储着所有该类虚函数的地址,C++中的多态机制就是靠他来实现的。2. 如果是虚继承,会加入一个vbptr的指针,指向虚基类;class BaseEm原创 2013-08-24 17:08:16 · 601 阅读 · 0 评论 -
new [] 与new []()区别
new int[10] ;new int[]();前者是随机值,后者会初始化为0;原创 2013-08-24 16:45:38 · 609 阅读 · 0 评论 -
memcpy 与new 开销,在大数据处理时谨慎使用指针
因为最经做些大数据处理的事情,主要是IP地址的处理,拥有15G大小IP信息文件,每条消息 IP,地区,服务商把这些消息处理合并成 起始IP:结束IP 地区 ,服务商在处理的工程中发现当处理1万条数据时,花费时间居然是6S左右,我觉得这个太慢了开始排查到底是哪里导致程序慢了现在问题没有找全,但是有个问题已经很明显了,那就是memcpy 拷贝构造,与new的开销。在原来的程序中,每原创 2013-12-09 13:09:02 · 2614 阅读 · 0 评论