
c++基础
文章平均质量分 61
plussai
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
指针,数组,sizeof
最近要百度面试,压力有点大。。。复习一下 已知 char *str1="absde"; char str2[]="absde"; char str3[8]={'a',}; char ss[] = "0123456789"; sizeof(str1)=4 sizeof(str2)=6; sizeof(str3)=8; sizeof(ss)=1...原创 2011-05-06 17:02:22 · 163 阅读 · 0 评论 -
位图bitmap
bitmap是一种广泛使用的数据结构,主要用在数据压缩,索引等方面,它最小单位为位,即01结构。通常情况下逻辑状态为是非二值状态时,bitmap比较常用。 如:腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中? 显然可以发现,需要判断给出的整数是否存在,是一个二值逻...原创 2011-07-13 21:08:02 · 142 阅读 · 0 评论 -
笛卡尔树以及treap---zoj_2243
zoj_2243笛卡尔树的构造,开始被topcoder上的教程吸引去看这题。题目中说这种数据结构叫treap然后就按照treap的insert加上左旋右旋去做了,结果果断TLE。然后网上找了一下关于笛卡尔树的资料,发现了一些问题的端倪。 首先,treap和笛卡尔树从形式上来说是完全一样的,即是一颗二叉搜索树和二叉堆的结合(不是严格意义上的二叉堆,因为二叉堆是一颗完全...2011-07-07 15:52:40 · 342 阅读 · 0 评论 -
中缀表达式的转化---zoj_2483,zoj_3025
在我们的日常生活中,中缀表达式是最常用的计算表达方式3*(-2+4),这种表达方式的优点就是表达的意义容易理解,一目了然。然而,这种表达方式在计算机识别方面缺十分不方便,其原因主要是,括号对于优先级的限制给编写识别程序造成了不便。 然而后缀表达式对于计算机的解析有这很大的遍历,它不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑...2011-07-04 18:54:17 · 573 阅读 · 0 评论 -
STL---priority_queue zoj_2212,zoj_2724,zoj_3230
priority_queue顾名思意是优先队列的意思,在STL内部的实现形式是堆。使用priority_queue的关键就是重载比较函数,去实现不同要求的堆。另外,值得注意的是,二叉堆实现的优先队列是不稳定的,这点要特别注意 在重载优先队列比较函数的时候注意是重载一个类,在类中重写一个()操作符。 class problem { public: ...2011-06-28 17:50:58 · 185 阅读 · 0 评论 -
STL---sort
引用:http://blog.youkuaiyun.com/rattles/archive/2010/04/21/5510919.aspx STL 中 sort 函数用法简介 做 ACM 题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的 O(n^2) 排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。 STL 里面有个 sort 函数,可以直接对数组排序...原创 2011-06-25 16:39:31 · 106 阅读 · 0 评论 -
float,double范围和精度
今天遇到一题zoj_1128,数据范围是(0<=x1<x2<=100000;0<=y1<y2<=100000),所有的数不一定是整数,并且最后输出的结果保留2位小数。用float死活wa,最后double过了,痛过之后来总结一下float和double的范围精度。 下面引用:http://www.cnblogs.com/BradMiller/...原创 2011-06-23 15:55:46 · 284 阅读 · 0 评论 -
STL map的使用---zoj_2832,zoj_1899,zoj_3023
map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 在zoj_2832中,map主要用来建立文件名(即字符串)和一个整数的关联,其中字符串为key,整数为value. 值得注意的一点是,代码34行注释中使用的map插入方法,出现BUG。当使用p[s]时...2011-06-10 15:40:32 · 256 阅读 · 0 评论 -
C++字符串输入操作
问题1:输入为一行字符串被中间被一些空格隔开,要求提取这些被空格隔开的字符串. 方法:直接使用cin,因为cin遇到空格附,换行附,\0,EOF等会停止输入 string s; while(cin>>s) { cout<<s<<endl; } 问题2:输入...2011-06-10 15:34:24 · 160 阅读 · 0 评论 -
struct数据对齐与#pragma pack(n)
对struct数据对齐与#pragma pack(n)的理解一直存在误区,这里做一个总结,便于以后记忆。 规则主要有两条: 1.结构,联合或者类的数据成员,第一个放在偏移为0的地方,以后每一个数据成员的对齐,按照#pragma pack指定的数值和这个数据成员的自身长度来定,取较小的那个。 2.对于整体结构的对齐,则按照结构体中最大数...原创 2011-09-14 16:38:06 · 224 阅读 · 0 评论 -
c++创建对象,堆,栈。。。
今天写作业 :o ,想通过写一个函数createLine来创建一条直线于是开写 [code="c++"] m_line* CGrahamView::createLine(CPoint i, CPoint j) { m_line* line; line->i=i; line->j=j; line->a=i.y-j.y; line->b=j.x-i.x; line->c=...2010-10-22 16:47:07 · 224 阅读 · 0 评论 -
C++带默认形参的函数
先上代码: [code="c++"] int sub(int x=8,int y=3) { return x-y; } void main() { sub(20,15); //20-15 sub(10); //10-3 sub(); //8-3 } [/code] 注意事项 1)C++调用函数时,参数是自由...2011-05-22 22:46:44 · 255 阅读 · 0 评论 -
struct内存分配
百度的笔试题 [code="c++"] struct s1 { char ch, *ptr; union { short a, b; unsigned int c:2, d:1; } struct s1 next; }; [/code] 的大小是_____: A. 12字节 B.16字节 C.20字节 D. 24字节 答案:12字节 简单的一道问题,...2010-10-11 21:14:53 · 228 阅读 · 0 评论 -
java,C++栈和堆
额,看惯了java,最近看c++就是蛋疼。。。写一篇日志比较一下java和c++建立变量时的内存模型。 先来看java,由于java中没有指针(*p),代替指针(*p)功能的是常说的名词引用(这里的引用和C++中又完全不同。。),java中的引用类似与指针的功能,它存放的是所指向的变量值的地址。比如int a=5; animal an=new animal();引用...原创 2010-09-30 19:04:19 · 159 阅读 · 0 评论 -
百度面试归~~我还是太年轻了。。。。
一大早还没怎么睡醒就打了辆车去酒店面试,到了9点,我被带到一个房间,里面摆了张桌子,上面有纸笔。面我的是个看起来挺年轻的GG,说话感觉挺亲切稳重的。 上来让我写快速排序,基本的思想我清楚,但是写到了的比较交换那个地方有点卡壳,但是还是更具自己的理解把代码完成了。之后果然,他看看我的代码之后,对比较交换的那部分有些疑问,针对我的代码让我想想优化的方案,我嗯嗯啊啊没有给出理想的方案。之后...2011-05-10 16:24:26 · 102 阅读 · 0 评论 -
const与指针
const 使用情况分类详析 const 用于指针的两种情况分析: int const *a; //a/可变,*a不可变 int *const a; //a不可变,*a可变 分析:const 是一个左结合的类型修饰符,它与其左侧的类型修饰符合为一个类型 修饰符,所以,int const 限定 *a,不限定a。int *const 限定a,不限定*a...2011-05-06 20:54:27 · 95 阅读 · 0 评论 -
大数计算模板---zoj_3447
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4190 很多DP,贪心会涉及高精度,苦于不会JAVA和PY等,只能找了个大数计算的模板,先膜拜在学习。这个代码请参考: http://www.cppblog.com/patriking/archive/2011...原创 2011-10-24 16:47:22 · 183 阅读 · 0 评论