C and C++
帛逸TB
这个作者很懒,什么都没留下…
展开
-
变长数组和alloca
C99标准里规定了允许在栈上定义变长数组或者叫变长自动数组(Variable-length Automatic Array). 例如:/* s1 and s2 are two strings(char*) */char str[strlen (s1) + strlen (s2) + 1]; /* str 就是栈上的变长数组 */strcpy (str, s1);strcat转载 2011-08-29 14:09:30 · 1317 阅读 · 0 评论 -
GBDT源码剖析
如今,GBDT被广泛运用于互联网行业,他的原理与优点这里就不细说了,网上google一大把。但是,我自认为自己不是一个理论牛人,对GBDT的理论理解之后也做不到从理论举一反三得到更深入的结果。但是学习一个算法,务必要深入细致才能领会到这个算法的精髓。因此,在了解了足够的GBDT理论之后,就需要通过去阅读其源码来深入学习GBDT了。但是,网上有关这类资料甚少,因此,我不得不自己亲自抄刀,索性自己从头原创 2012-12-04 22:22:48 · 22404 阅读 · 4 评论 -
命名空间
test.h中: namespace tt{ void f();} test.cpp中:#include "test.h" //可不包含test.h,编译阶段是将同一个命名空间编译到一起的。 namespace tt{ void f() { }} main.cpp中:#include "test.h" /原创 2011-01-03 13:15:00 · 876 阅读 · 0 评论 -
操作系统复习总结:理论总结- -
操作系统是计算机系统之上的第一层软件,它的功能主要有三点:硬件资源的管理者,对用户的接口,扩充机器。操作系统的主要任务包括:1. 进程管理:包括进程控制(进程的创建,执行,阻塞,终止),进程调度(各种调度算法)和进程通信(高级通信和低级通信),死锁管理;2. 存储器管理:包括内存分配(连续分配,如:单一连续分配,固定分区分配,可变分区分配,运行时动态连续分区分配,以及离散分配方式,如分段,转载 2010-08-28 16:09:00 · 2582 阅读 · 0 评论 -
Linux Shell 常用命令与目录分区的学习总结
Linux shell是系统的用户界面,即命令行。它提供了用户与内核进行交互式操作与控制的接口,接受用户输入的命令并把它送入内核中去执行。实际上Shell是Linux/Unix系统的命令解释器,它解释了由用户输入的命令,类似于Windows系统平台下的DOS界面和命令。=========================================================转载 2010-08-04 17:44:00 · 504 阅读 · 0 评论 -
ASCII,Unicode和UTF-8
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知道,在计算机内部转载 2011-08-27 18:44:42 · 1088 阅读 · 0 评论 -
C语言宏实现模版函数
.h文件可以声明宏定义模版函数:(在其它文件中只要包含了该.h文件,就可以使用这些函数)#define Convert_Declare(suffix,T,filename) / (extern) void suffix_##filename(const Scalar* s, T* buf, int cn,原创 2010-12-28 20:47:00 · 4180 阅读 · 0 评论 -
MakeFile 经典简洁范例
getAbs.hint getAbs(int value);const int h=10;getAbs.cpp#include "getAbs.h"int getAbs(int value){ return (value>0) ? value : -value;}main.cpp#include #include "getAbs.h"原创 2011-10-27 09:32:18 · 1163 阅读 · 0 评论 -
我所积累的20条编程经验
编者按:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你能在本文中看到自己的身影。 从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易转载 2010-11-18 20:44:00 · 963 阅读 · 1 评论 -
注册类(类的注册)
实现类的注册方法:ModuleManger.h1.定义根类IModule,其它类都是继承自它。2.定义typedef std::map STRING_MODULE_MAP; 用于存放注册类的指针。3. #define DECLEAR_MODULE(className) \ //.注册类的申明cla原创 2011-08-22 17:12:09 · 2136 阅读 · 0 评论 -
sizeof
1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes,associated with a variable or a type (including aggregate types). Thiskeyword returns a value of ty转载 2010-08-05 20:50:00 · 512 阅读 · 0 评论 -
虚拟继承
在缺省情况下,C++中的继承是按值组合的一种特殊情况。当我们写:class Bear : public ZooAnimal { ... };每个Bear 类对象都含有其ZooAnimal 基类子对象的所有非静态数据成员,以及在Bear中声明的非静态数据成员。类似地,当派生类自己也作为一个基类对象时,如:class PolarBear : public Bear { ... };则P转载 2010-08-17 22:15:00 · 961 阅读 · 0 评论 -
String常用用法总结
总结string常用函数的常用用法,具体的请看帮助。头文件:1、append描述:在string末尾添加字符串。string str("Head First");//str:Head Firststr.append("!");//str:Head First!2、assign描述:给string分配一个新的字符串。string str("Head First");/原创 2010-09-05 20:43:00 · 1575 阅读 · 1 评论 -
字符数组、字符指针和sizeof值得注意的地方。。
1.以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写 "abc",那么编译器帮你存储的是"abc/0"2."abc"是常量吗?答案是有时是,有时不是。 不是常量的情况:"abc"作为字符数组初始值的时候就不是,如 char str[] = "abc"; 因为定义的是一个字符数组,所以就相当于定义了一些空间原创 2010-07-23 14:58:00 · 642 阅读 · 0 评论 -
RTTI 运行时类型识别
RTTI(运行时类型识别)允许“用指向基类的指针或引用来操纵对象”的程序能够获取到“这些指针或引用所指对象“的实际派生类型。在c++中,为了支持RTTI,提供了两个操作符:1、dynamic_cast 操作符,它允许在运行时刻进行类型转换,从而使程序能够在一个类层次结构中安全地转换类型,把基类指针转换成派生类指针,或把指向基类的左值转换成派生类的引用,当然只有在保证转换能够成功的情况下才可以。转载 2011-08-29 15:23:03 · 1079 阅读 · 0 评论 -
C语言函数入栈顺序与可变参数函数
C函数入栈顺序下面先摘录一些:================================================C/C++函数调用约定与函数名称修饰规则探讨 使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有 问题,但是链接的时候总是报告函数不存在(经典的LNK 2001错误),有时候是程序编译和链接都没有错误,但是只要调用库中的函数就会出现堆栈异常。这些现象转载 2010-09-17 11:26:00 · 629 阅读 · 0 评论 -
纯虚函数能为private吗?
我们把一个仅仅含有纯虚函数的类称为接口,我们也好像已经习惯了将这个接口中的所有纯虚函数全声明为public,而且按照这样的设计,一切都工作得不错。比如COM正是这样做的,它的接口中几乎不会存在private的纯虚函数。那么,让我们想一想,纯虚函数或者虚函数可以为private吗?如果这种方式是可行的,那么什么时候可以将(纯)虚函数设为private了?这些都是本文将要讨论的主题。一起来看看。转载 2010-08-30 12:55:00 · 973 阅读 · 0 评论 -
C++ 虚函数表解析
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不转载 2010-08-15 15:27:00 · 540 阅读 · 0 评论 -
c++异常处理机制
下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。 #include "stdafx.h" #include #include #include // 内存泄露检测机制 #define _CRTDBG_MAP_ALLOC #ifdef _DEBUG #define new new(_NORMAL_BLOCK, __FILE__,转载 2011-08-29 14:54:34 · 1097 阅读 · 0 评论 -
C++经典面试
1.介绍一下STL,详细说明STL如何实现vector。Answer: STL (标准模版库,Standard Template Library)它由容器算法迭代器组成。 STL有以下的一些优点: 可以方便容易地实现搜索数据或对数据排序等一系列的算法; 调试程序时更加安全和方便; 即使是人们用STL在UNIX平台下写的代码你也可以很容转载 2010-10-02 11:41:00 · 1084 阅读 · 0 评论 -
C++字符串函数
函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(s原创 2010-09-05 20:38:00 · 1288 阅读 · 0 评论 -
c++ 时间类型详解(time_t和tm)
原文:http://blog.csdn.net/love_gaohz/article/details/6637625Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类U转载 2017-05-24 19:47:32 · 934 阅读 · 0 评论