欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:975
  2. 浏览总数:11,908,248
  3. 评论:3928
  4. 分类目录:105 个
  5. 注册用户数:6083
  6. 最后更新:2018年12月9日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

 分类: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   6年前 (2013-04-08) 6259℃ 0评论8喜欢

Linux库memmove函数实现

Linux库memmove函数实现
在http://www.iteblog.com/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英文介绍,里面很详细的介

w397090770   6年前 (2013-04-08) 3426℃ 0评论0喜欢

Linux库memcpy函数实现

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

w397090770   6年前 (2013-04-05) 16396℃ 7喜欢

atoi和itoa函数实现

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

w397090770   6年前 (2013-04-05) 15648℃ 3评论0喜欢

C和C++结构体的区别

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

w397090770   6年前 (2013-04-05) 4126℃ 0评论0喜欢

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

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

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

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

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

w397090770   6年前 (2013-04-04) 3546℃ 0评论1喜欢

C++四种强制类型转换

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

w397090770   6年前 (2013-04-04) 2383℃ 0评论2喜欢

二叉树的链表表示法实现

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

w397090770   6年前 (2013-04-04) 2537℃ 0评论1喜欢

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

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

w397090770   6年前 (2013-04-04) 2932℃ 0评论0喜欢