- 博客(14)
- 资源 (3)
- 收藏
- 关注
原创 笔记3-关联容器
关联容器map其中key关键字必须是唯一的pair解引用一个关联容器迭代器时,会得到一个类型为容器的value_type的值的引用对map而言,value_type为一个pair类型,含有两个成员,first成员保存const key value,second成员保存值(非const)向map插
2017-11-30 19:27:06 121
原创 笔记2-容器适配器/泛型算法/lambada表达式
容器适配器 容器适配器 stack quque priority_quque 接受一种已有的容器类型,使其行为看起来像另一种容器stack及queue基于deque,priority_quque基于vectorPS:介绍下value_type: 表示容器中的元素类型,该方法叫做type traits。见源代码templatevector { typedef T val
2017-11-30 09:46:29 228
原创 笔记1-顺序容器
array初始化时必须确定大小array可以进行拷贝或对象赋值操作,普通数组不可以array a = {0};a = {0}; //错误,array不能够如此赋值,因为右边大小可能超过左边顺序容器(assign除外)的特殊操作max_sizeI()返回一个该类型容器所能达到的最大值#include #inclu
2017-11-29 19:40:19 119
转载 IO库总结
和文件有关系的输入输出类主要在fstream.h这个头文件中被定义,在这个头文件中主要被定义了三个类,由这三个类控制对文件的各种输入输出操作,他们分别是ifstream、ofstream、fstream,其中fstream类是由iostream类派生而来,他们之间的继承关系见下图所示。由于文件设备并不像显示器屏幕与键盘那样是标准默认设备,所以它在fstream.h头文件中是没有像c
2017-11-28 21:13:10 117
转载 rand()和srand()产生为随机数方法
标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。 函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。 可以认为rand()在每次被调用的
2017-11-22 00:52:16 330
转载 四大强制转换符
在C++中主要有四种强制类型转换:static_cast,reinterpret_cast,const_cast,dynamic_cast。1)static_cast(a)将地址a转换成类型T,T和a必须是指针、引用、基本数据类型或枚举类型。在运行时转换过程中,不进行类型检查来确保转换的安全性。class B { ... };class D : public B { ...
2017-11-09 17:00:43 908
转载 RTTI
RTTI概念RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型。RTTI机制的产生为什么会出现RTTI这一机制,这和C++语言本身有关系。和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态
2017-11-09 16:59:41 216
转载 如何理解c和c++的复杂类型声明
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。 需要强调一下的是,复杂的C/C++声明并不是好的编
2017-11-08 21:33:30 253
转载 指针详解
指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: int *ptr; char *ptr; int **ptr; int (*pt
2017-11-08 20:58:21 165
转载 函数指针
一、最简单的函数指针 变量都包括声明和赋值,指针不例外,函数指针也不例外。我们来看一个简单的函数:void add(int a, int b){ cout endl;} 一个简单的加法计算并输出到命令行的函数。 那么如何通过函数指针来调用它呢? 1、声明:void (*p1)(int a, int b); 函数指针的声明很简单,基本
2017-11-08 14:59:18 132
转载 类中的静态成员变量和静态成员函数的作用
数据成员可以分为静态变量、非静态变量两种。静态成员:静态类中的成员加入static修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态成员,因为静态成员存在于内存,所以非静态成员可以直接访问类中的静态成员。非静态成员:所以没有加static的成员都是非静态成员,当类被实例化后,可以通过实例
2017-11-07 14:41:36 1994
转载 断言与静态断言
断言是很早之前就有的东西了,只需要引入cassert头文件即可使用。往往assert被用于检查不可能发生的行为,来确保开发者在调试阶段尽早发现“不可能”事件真的发生了,如果真的发生了,那么就表示代码的逻辑存在问题。最好的一点就是,断言只在Debug中生效,因此对于Release版本是没有效率上的影响的。 #include #include using namespace std;
2017-11-06 21:46:21 479
原创 MessageBoxA 弹出对话框函数
弹对话框 #include#includevoid main(){ MessageBoxA(0, "第一个C窗体程序", "消息", 3); //参数1:系统弹出 // 参数2:消息内容 // 参数3:标题 // 参数4:对话框的类型 // 0 只有 确定 按钮; // 1 确定 取消 按钮; // 2 终止 重试 忽略 按钮 // 3 是 否
2017-11-06 21:00:54 12487 2
空间数据三维建模与可视化
2018-05-14
软件开发者路线图-从学徒到高手
2018-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人