C++
marsjhao
每天进步一点!
展开
-
malloc函数、free函数和new运算符、delete运算符
1. C语言malloc函数和free函数(1)malloc原型:externvoid *malloc(unsigned int num_bytes);头文件:#include或#include (注意:alloc.h与malloc.h的内容是完全一致的)。功能:分配长度为num_bytes字节的内存块。说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内原创 2017-09-18 20:45:08 · 1086 阅读 · 0 评论 -
STL关联容器总结
一、关联式容器STL 关联容器分为 set(集合)和 map(映射表)两大类,及其衍生体 multiset 和 multimap。这些容器的底层机制均以 RB-tree(红黑树)实现。RB-tree 也是一个独立容器,但并不开放使用。SGI STL 还提供一个不在标准规格的关联式容器 hash_table(散列表),以及以 hash_table 为底层机制而完成的 hash_set散列...原创 2018-08-26 20:49:58 · 2043 阅读 · 0 评论 -
STL序列容器总结
STL 的各种容器: 一、vectorvector 的数据安排及操作方式,与 array 非常相似,两者的区别在于,array 是静态空间,一旦配置不能改变,vector 是动态空间。1. vector 的数据结构通过这个三个迭代器可计算得到容器内元素个数和容器当前容量。2. vector 的空间分配与容量增加新元素时,若超过容器当前的容量,则容量会扩充至两倍,...原创 2018-08-26 19:10:54 · 1110 阅读 · 0 评论 -
cin、!cin作为条件判断原理分析
在判断文件打开成功与否或是连续从流中读取数据时,就要用到对流对像的操作,比如 if(!cin) 或是 whie(cin) 。对于 while(cin>>val),cin 是一个流对象,而>>运算符返回左边的流对象,也就是说 cin>>val 返回 cin,于是 while(cin>>val) 就等于是 while(cin),问题就变成了一个流对象在判...原创 2018-08-12 14:59:39 · 5370 阅读 · 3 评论 -
C++类型转换
一、类型强转 type cast类型转换有C风格,也有C++风格的。C风格的类型转换简单,可以在任意类型之间转换,比如可以将一个指向const对象的指针转换成指向非const对象的指针,或者将一个指向基类对象的指针转换成指向派生类对象的指针,C语言对不同种类的转换不加区分,还有一个缺点就是,C风格的转换是括号加上一个标识符组成,不容易查找。C++为了克服这些缺点,引进了4个新的强制类型转换操作...原创 2018-08-10 16:23:26 · 218 阅读 · 0 评论 -
C++运算符重载
运算符重载本质上是函数重载。operator与运算符名称在一起构成了新的函数名。比如const Complex operator+(const Complex &c1,const Complex &c2);,我们会说,operator+ 重载了运算符 +。语法格式:返值类型 operator 运算符名称(形参表列){重载实体;}1. 运算符既可以被重载为...原创 2018-08-10 15:34:24 · 500 阅读 · 0 评论 -
C语言与C++的比较
一、C++对C语言的扩展1. 类型增强(1)类型检查更严格,如无法将const类型的指针赋值给非const类型的指针;(2)C++中有表示逻辑真假的布尔类型bool,可取值为true和false;(3)真正的枚举,C++中的枚举变量只能用被枚举出来的元素初始化,C语言中枚举的本质是整型,枚举变量可以用任意整型赋值;(4)表达式的值可以被赋值,如 (a=b)=10;;2. 输...原创 2018-08-09 22:40:11 · 1155 阅读 · 0 评论 -
C++ const关键字总结
C++中的 const 关键字的用法非常灵活,而使用const将大大改善程序的健壮性,采用符号常量写出的代码更容易维护。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。〇、用法分类常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常数组: 类型说明符 con...原创 2018-08-09 20:02:08 · 857 阅读 · 0 评论 -
struct和typedef struct
1. C语言结构体Struct在C语言中,通过结构体Struct来定义一组不同类型的数据,其定义形式为:struct 结构体名{ 结构体的成员};struct stu{ char *name; //姓名 int num; //学号 float score; //成绩};通过结构体定义的数据类型可用来定义变量,如stru原创 2017-09-18 10:24:51 · 1236 阅读 · 0 评论 -
static 关键字总结
1. 程序的内存分配(1)静态存储区,全局变量和静态变量的存储是在静态区,初始化的全局变量和静态变量在一块区域 .data,未初始化的全局变量和静态变量在相邻的另一块区域 .bss。程序结束后由系统释放。(2)栈区,由编译器自动分配释放,存放函数的参数值、局部变量等。(3)堆区,一般由程序员分配释放,即动态内存分配。(4)文字常量区,存放常量字符串,程序结束后由系统释放。(5)...原创 2018-08-23 21:41:11 · 2858 阅读 · 0 评论