C/C++
沧南
这个作者很懒,什么都没留下…
展开
-
C++ string类
const char *data()const;//返回一个非null终止的c字符数组 const char *c_str()const;//返回一个以null终止的c字符串 //返回当前字符串的字节数,不管是否有汉字。 int size()const; int length()const; 两者没有区别。 length是因为沿用C语言的习惯而保留下原创 2012-11-15 17:10:40 · 552 阅读 · 0 评论 -
结构体字节对齐
最近参加了多场公司的笔试,基本上每次必考结构体的大小。一般都是win32平台,其字节对齐策略为: 1)结构体变量的首地址能够被其最宽数据类型成员的大小整除。编译器在为结构体变量开辟空间时,首先找到结构体中最宽的数据类型,然后寻找内存地址能被该数据类型大小整除的位置,这个位置作为结构体变量的首地址。而将最宽数据类型的大小作为对齐标准。#include struct A{原创 2012-09-25 23:35:55 · 783 阅读 · 0 评论 -
函数重载、隐藏与覆盖
函数重载 出现在相同作用域中的两个函数,如果具有相同的名字而形参表不同,则称为重载函数。 作用:省去了为函数起名并记住函数名字的麻烦,简化了程序的实现,使程序更容易理解。 注意:main函数不能重载;函数不能仅仅基于不同的返回值类型而实现重载;进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同;局部声明的函数将屏蔽而不是重载在外层原创 2012-09-13 10:24:42 · 700 阅读 · 0 评论 -
数组的引用与引用数组
在《C++ Primer 第四版》的第七章中,讲到了通过引用传递数组,和其他类型一样,数组形参可声明为数组的引用。如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身。在这种情况下,数组大小成为形参与实参类型的一部分,编译器检查数组实参的大小与形参的大小是否匹配。#include using namespace std;void output(int (&a原创 2012-09-16 00:52:15 · 30892 阅读 · 3 评论 -
跳表(Skip List)的介绍以及查找插入删除等操作
什么是跳表?要说清楚这个问题,我们就要先从普通的有序链表说起。一个普通有序列表的结构如下:我们可以看到,上图所示的链表按照由小到大的顺序排列(-1表示最小值,1表示最大值,这是本文的一个约定),如果我们想要查找一个元素x,算法如下:1 2 3cell *p = head; while (p->next->key x) p=p->next; return转载 2011-11-08 12:31:37 · 1598 阅读 · 0 评论 -
Exceptional C++ Syle 学习笔记
看完了《Exceptional C++ Syle》,现将书中一些重要的东西记下来,以供以后翻阅。 第1条 vector的使用 使用vetor∷at,该成员函数会进行下标越界检查以确保当前vector中的确包含了需要的元素。名言:一般说来,不应该为不使用的东西付出代价。使用operator[],标准并不强制operator[]进行越界检查,高效性。 size原创 2011-11-08 00:25:00 · 1442 阅读 · 0 评论 -
STL容器
一、Vector对象的初始化(1)分配指定数目的元素,并对这些元素进行值初始化;vector ivec(10); //ivec包含10个0值元素;(2)分配指定数目的元素,并将这些元素初始化为指定值;vector ivec(10,1); //ivec包含10个值为1的元素;(3)将vector对象初始化为一段元素的副本原创 2012-11-13 21:32:52 · 615 阅读 · 0 评论