C++
文章平均质量分 64
shunshine988
I kiss my dream~用我们勤劳の双手编制未来滴梦想
展开
-
关于在字符串中删除特定的字符
题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 分析:这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的一部分,因为写程序操作字符串能很好的反映我们的编程基本功。 要编程完成这道题要求的功能可能并不难。毕竟,这道题的基本思路就是原创 2009-06-14 12:01:00 · 2166 阅读 · 0 评论 -
strcpy,memcpy,memmove,memset,strncpy
<br />strcpy,memcpy,memmove,memset,strncpy<br /><br />一.函数分别介绍:<br />1、memcpy:<br />原型:extern void *memcpy(void *dest, const void *src, unsigned int count);<br />用法:#include<string.h><br />功能:由src所指内存区域复制count个字节到dest所指内存区域。<br />说明:src和dest所指内存区域不能重叠,函数返回转载 2010-09-12 21:09:00 · 678 阅读 · 0 评论 -
计算机如何处理浮点数
<br />■ 现实生活中的小数<br />数学中的小数,又称为实数。一般用十进制表示<br /><br />例如: 3.14159265<br /><br /><br />■ 科学计算法<br />数学中的科学计算法许多种表示法<br /><br />3.14159265 = 0.314159265 × 101<br /><br /><br />■ 计算机中浮点数的表示<br /> <br />在计算机中的使用科学计数法是一种“规格化计数法”。<br /> <br />● 规格化计数法<br />原创 2010-08-26 20:32:00 · 1171 阅读 · 0 评论 -
面试算法小记
<br />【一】 时间受限 <br />大部分的面试题,都是对时间复杂度有所要求的,如果有涉及,“最快”一类的字样,毫无疑问,先上时空原理,用空间来换时间。Hash,大数组,一些辅助性的空间,都是首选。在我的面试经历中,有无数次用到过Hash和大数组的。不过,通常这不会是面试官想听的唯一解法,他们紧接着十有八九是会说“如果只有xxxx空间呢?”。说此类方法只是为自己争取更多的时间,并且体现思考的完整性,简而言之,装B用。。。 eg1.1:求一个char(8bit)中,二进制1的个数,越快越好。 -- 《编转载 2010-08-16 10:12:00 · 769 阅读 · 0 评论 -
关于内存对其问题(三)
第一种情况:struct BBB{ long num; // 4bytes char *name; // 4 bytes short int data; // 2 bytes转载 2010-05-10 14:34:00 · 712 阅读 · 0 评论 -
关于内存对其问题(二)
一个类的对象到底有多大?其大小由什么因素影响?我们假定这个类没有继承任何其他类,且没有虚函数。先看下面例子: #include using namespace std; class Concrete{public: Concrete():val(0), c1(A), c2(B)//, c3(C) {转载 2010-05-10 14:32:00 · 447 阅读 · 0 评论 -
关于内存对其问题(一)
a. 基本类型:所有的基本类型都有相应的对齐参数,编译器在编译时,会用全局的对齐参数和当前类型的对齐参数中较小的一个进行对齐。比如,编译时指定暗8bytes对齐(用#pragma pack(8)实现之),可是由于一个char变量的大小为一个byte,所以最后还是按1byte对齐。b. 复合类型:复合类型的对齐原则,就是取其成员变量数据类型的字节数的最大者和在编译时指定的对齐数两者之间转载 2010-05-10 14:29:00 · 434 阅读 · 0 评论 -
C++虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做转载 2010-04-29 18:29:00 · 585 阅读 · 0 评论 -
试编写函数判断计算机的字节存储顺序是开序(little endian)还是降序(bigendian)
little endian和big endian是表示计算机字节顺序的两种格式,所谓的字节顺序指的是长度跨越多个字节的数据的存放形式. 假设从地址0x00000000开始的一个字中保存有数据0x1234abcd,那么在两种不同的内存顺序的机器上从字节的角度去看的话分别表示为: 1)little endian:在内存中的存放顺序转载 2010-03-14 16:01:00 · 3302 阅读 · 0 评论 -
为什么基类的析构函数定义为虚函数?
举个例子来说,比如: class A { ... virtual ~A() { printf("A::~A()"); }; ... }; class B : public A { ..原创 2010-03-01 20:26:00 · 1197 阅读 · 1 评论 -
static变量和static函数的用法
一、 static 变量 static变量大致分为三种用法1. 用于局部变量中,成为静态局部变量. 静态局部变量有两个用法,记忆功能和全局生存期. 2. 用于全局变量,主要作用是限制此全局变量被其他的文件调用. 3. 用于类中的成员.表示这个成员是属于这个类但是不属于类中任意特定对象1. 静态局部变量静态局部变量属于静态存储方式,它具有以下特点:(1)静态局部变量在函数内定义转载 2010-03-01 19:48:00 · 793 阅读 · 0 评论 -
指向基类/派生类指针,指向基类成员/派生类成员指针,及互相赋值
可以安全地将一个指向基类成员的指针赋值给一个指向派生类的成员的指针,反过来不行。另外,可将一个指向派生类对象的指针赋值给一个指向基类得指针,即基类指针可在不加显式转换的情况下指向派生类对象。代码测试如下,结果确实如上面所说: #include ... class Base { public:转载 2010-03-01 20:39:00 · 1529 阅读 · 0 评论 -
常见的C字符串处理函数的源代码
char *strcpy(char *strDes, const char *strSrc){ assert((strDes != NULL) && (strSrc != NULL)); char *address = strDes; while ((*strDes ++ = *strSrc ++) != /0)转载 2010-02-01 21:32:00 · 709 阅读 · 0 评论 -
string.h中的函数
string.h中的函数@函数名称: strdup函数原型: char *strdup(const char *s)函数功能: 字符串拷贝,目的空间由该函数分配 函数返回: 指向拷贝后的字符串指针参数说明: src-待拷贝的源字符串所属文件: #include #include #include int main(){ char *dup_str, *string="ab原创 2010-01-25 20:09:00 · 468 阅读 · 0 评论 -
统计一个字符串在另一个字符串中出现的次数
程序如下:int cont_str_contain_str(char *str,char *substr){ int count=0; int Len=strlen(substr); char *strend=str+strlen(str)-1; while (str str=strstr(str,substr); if(!str) break; str+=Len; count++;原创 2010-01-25 20:04:00 · 1172 阅读 · 0 评论 -
共用体union用法讲解
一、 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。 联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名; ...转载 2009-10-12 22:18:00 · 537 阅读 · 0 评论 -
关于头文件和命名空间
iostream iostream 的意思是 输入输出流直接点说就是in(输入) out(输出) stream(流)取 in out 的首字母与 stream 合成 C++语言中#include是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。 在旧的标准C++中,使用#include 但在新标准中,用#include,而且在VS中编程的同时要注意要转载 2009-06-19 21:26:00 · 6560 阅读 · 0 评论 -
给内存地址“0x12345678”赋值为0
代码为: long *p; p=(long*)0x12345678; *p=0;原创 2009-06-14 12:07:00 · 1396 阅读 · 0 评论 -
malloc()、calloc()及alloc()的区别
malloc()与 alloc()区别C语言跟内存分配方式(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete转载 2010-09-12 20:48:00 · 1923 阅读 · 0 评论