欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

 分类:CPP编程

Linux库memset函数实现

Linux库memset函数实现
  memset的函数原型是[code lang="CPP"]void * memset ( void * ptr, int value, size_t num );[/code]  这个函数的功能是将ptr所指向的某一块内存中的每个字节的内容全部设置为value指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。 英文解释:Sets the first num bytes of the block of memory pointed by ptr to the specified va

w397090770   11年前 (2013-04-08) 7792℃ 0评论8喜欢

Linux库memmove函数实现

Linux库memmove函数实现
在/archives/227主要介绍了memcpy函数的实现,并说明了memcpy函数的局限性。今天来介绍一下和memcpy函数功能类似的函数memmove。memmove函数和memcpy函数的原型为[code lang="CPP"]#include <string.h>void *memcpy(void *dest, const void *src, size_t n);void *memmove(void *dest, const void *src, size_t n);[/code]memmove英文介绍,里面很详细的介绍了memmove函数的

w397090770   11年前 (2013-04-08) 4524℃ 0评论0喜欢

Linux库memcpy函数实现

Linux库memcpy函数实现
memcpy函数在面试中很容易被问到如何去实现。memcpy函数是内存拷贝函数,用于将一段内存空间数据拷贝到另一段内存空间中,但是它和memmove函数不同的是,它对内存空间有要求的,dest和src所指向的内存空间不能重叠,否则的数据是错误的。例如:src所指向的内存空间后面部分数据被新拷贝的数据给覆盖了,所以拷贝到最后,数

w397090770   11年前 (2013-04-05) 20190℃ 8喜欢

atoi和itoa函数实现

atoi和itoa函数实现
atoi函数是C语言库提供的,是把字符串转换成整型数和把字符串转换成整型数。而itoa函数是广泛应用的非标准C语言扩展函数,由于它不是标准C语言函数,所以不能在所有的编译器中使用,它的功能是把一整数转换为字符串。两个函数功能很好理解,但是它们的实现需要考虑到很多问题,在面试中,很多面试官都会问atoi和itoa的实现

w397090770   11年前 (2013-04-05) 16962℃ 3评论1喜欢

C和C++结构体的区别

C和C++结构体的区别
C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。 C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。 C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。在C中定义一

w397090770   11年前 (2013-04-05) 5062℃ 0评论0喜欢

C++怎么设计只能在堆或者栈分配空间的类

C++怎么设计只能在堆或者栈分配空间的类
一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?肯定是可以的。 只能在堆上分配空间:我们可将类的析构函数用private来修饰,也就是把析构函数私有化,因为自动变量与静态变量的对象都在释放空间的时候都需要访问析构函数。若

w397090770   11年前 (2013-04-05) 4775℃ 0评论1喜欢

C++中构造函数何时才会构建

C++中构造函数何时才会构建
当用户未定义一个默认的构造函数,编译器并不是在任何时候都给自动给我们定义一个默认的构造函数,它只会在编译器需要的时候才会生成,并且只有class类型的变量会被初始化,其他的诸如内置类型变量或者指针都不会被初始化,这些变量的初始化工作是程序员的责任。同样,一个类的默认复制构造函数也不是什么时候都会

w397090770   11年前 (2013-04-04) 31963℃ 0评论1喜欢

C++四种强制类型转换

C++四种强制类型转换
在C++中一共有四种强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast。除了dynamic_cast是在运行的时候进行类型转换的,其它三种都是在编译期间实现转换的。四种类型的转换介绍如下: dynamic_cast:只能在继承类对象的指针之间或引用之间进行类型转换,进行转换时,会根据对象的运行时类型信息,判断类型对象之间的

w397090770   11年前 (2013-04-04) 3197℃ 0评论2喜欢

二叉树的链表表示法实现

二叉树的链表表示法实现
本程序实际上是构建了一颗二叉排序树,程序最后输出构建数的中序遍历。代码实现:[code lang="CPP"]#include <stdio.h>#include <stdlib.h>// Author: 过往记忆// Email: wyphao.2007@163.com// Blog: typedef int DataType; typedef struct BTree{ DataType data; struct BTree *Tleft; struct BTree *Tright; }*BTree;BTree CreateTree(); BTree insert(BTree root, DataTy

w397090770   11年前 (2013-04-04) 3039℃ 0评论1喜欢

树的非递归中序和层次遍历实现

树的非递归中序和层次遍历实现
相信大家对树的各种递归的遍历很了解,利用递归使得代码变得简单而且比较好理解,但是利用递归是需要代价的,特别是当递归层次比较深的时候,可能会导致递归栈溢出。而且递归一般运行速度比较慢,那么这种情况下,我们就可以采用非递归来实现,非递归相对递归来说,代码相对比较难理解,而且代码量也一般比较多,可

w397090770   11年前 (2013-04-04) 3385℃ 0评论0喜欢