c/c++
文章平均质量分 77
游向高原的鱼
这个作者很懒,什么都没留下…
展开
-
string中c_str()、data()、copy(p,n)函数的用法
标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1. c_str():生成一个const char*指针,指向以空字符终止的数组。注:①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中。注意。转载 2013-03-08 10:34:17 · 333 阅读 · 0 评论 -
头文件string与string.h的区别
在C++中,#include与#include的区别,前者要使用更新的编译器(其实大部分编译器多比较前卫了,出了有些搞嵌入式的用变态的编译器)。喔,原来iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头文件没有.h扩展名,将以前的C的头文件转化为C++的头文件后,有时加上c的前缀表示来自于c,例如cmath就是由math.h变来的。using na转载 2013-04-12 14:34:09 · 344 阅读 · 0 评论 -
assert()函数用法总结
assert()函数用法总结 assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终转载 2013-04-15 22:21:01 · 319 阅读 · 0 评论 -
qsort函数应用大全(转)
qsort函数应用大全(转)七种qsort排序方法一、对int类型数组排序int num[100];Sample:int cmp ( const void *a , const void *b ){return *(int *)a - *(int *)b;}qsort(num,100,sizeof(num[0]),cmp);转载 2013-02-12 20:36:02 · 169 阅读 · 0 评论 -
C_C++变量命名规则
C_C++变量命名规则变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则: 1、 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。2、 第一个字母必须是字母或者下划线开头。3、 不能使用C++关键字来命名变量,以免冲突。4、 变量名区分大小写。 变量命名规则:一、转载 2013-04-25 13:09:42 · 400 阅读 · 0 评论 -
宏和枚举的区别
注:以下全部代码的执行环境为VC++ 6.0宏和枚举的区别宏和枚举之间的差别主要在作用的时期和存储的形式不同,宏是在预处理的阶段进行替换工作的,它替换代码段的文本,程序运行的过程中宏已不存在了。而枚举是在程序运行之后才起作用的,枚举常量存储在数据段的静态存储区里。宏占用代码段的空间,而枚举除了占用空间,还消耗CPU资源。但也不能就此说宏比枚举好,如果需要定义非常转载 2013-07-06 17:19:42 · 489 阅读 · 0 评论 -
win7,vs2010环境下OPENGL配置
win7,vs2010环境下OPENGL配置第一步:选择一个编译环境现在Windows系统的主流编译环境有VisualStudio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。但这里我们选择VC++ 6.0(VS 2010)作为学习OpenGL的环境。第二步:安装GLUT工具包GLUT不是OpenGL所必须的,但它会给我们的学习带来转载 2013-02-27 12:13:50 · 531 阅读 · 0 评论 -
C++ 中的成员对象(学习笔记)
【概念】成员对象:当一个类的成员是另一个类的对象时,这个对象就叫成员对象。概括的说,就是一个类的成员是一个对象,即成员对象。例如:#includeusing namespace std;class Date{ ...}; //创建一个对象Date,类体略class Time{ Date d1 , d2;}; //创建一个对象Time,该对象有两转载 2013-03-14 14:35:53 · 332 阅读 · 0 评论 -
派生类的构造函数
1.派生类的概念以面向对象的程序设计的观点来看,继承表达的是对象类之间的相互关系。这种关系使得某类对象可以继承另外一类对象的特征和能力。如果一类对象继承了另一类对象的特征和能力,这个类就叫做所继承类的派生类。1.1声明一个派生类的一般格式是:class 派生类名:派生方式( public or private)基类名{//派生类新增加或修改的数据和成员函数};1.2派生类构造函转载 2013-03-14 14:07:39 · 471 阅读 · 0 评论 -
C++四种cast操作符
C 风格(C-style)强制转型如下:(T) expression 或T(expression) //函数风格(Function-style)两种形式之间没有本质上的不同。对于具有转换的简单类型而言C 风格转型工作得很好。然而,这样的转换符也能不分皂白地应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:reinterpret_cast, stati转载 2013-04-04 20:06:12 · 371 阅读 · 0 评论 -
类的sizeof
1、空类的sizeof是1。空类是指没有成员的类,类中的函数不占空间,除非是虚函数。如: class A { public: A(){} ~A(){} void fun(){}转载 2013-04-04 23:09:23 · 333 阅读 · 0 评论 -
虚函数实现原理
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法转载 2013-03-22 18:11:42 · 344 阅读 · 0 评论 -
5分钟搞定内存字节对齐
写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧. /******************************分割线如果体系结构是不对齐的,A中的成员将会一个挨一个存储,从而sizeof(a)为11。显然对齐更浪费了空间。那么为什么要使用对齐呢?体系结构的对齐和不对齐转载 2013-03-22 22:41:10 · 339 阅读 · 0 评论 -
Boyer-Moore算法学习
1、概述在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。常规的匹配算法移动模式串的时候是从左到右,而进行比较的时候也是是从左到右的,基本框架是:[cpp] view plaincopy转载 2013-09-12 22:05:19 · 352 阅读 · 0 评论