mfcheer

已搬家至:www.mfcheer.com

内存分配函数(C语言)

C 标准函数库提供了许多函数来实现对堆上内存管理 malloc函数:malloc函数可以从堆上获得指定字节的内存空间(必须初始化) free函数:释放内存,防止内存泄露 calloc函数:与 malloc类似,但不需要初始化 realloc函数:重新分配内存头文件stdlib.hmallo...

2016-09-18 02:10:47

阅读数:2497

评论数:0

虚函数实现原理(转)

虚函数表(Virtual Table),简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了...

2016-09-10 00:04:04

阅读数:175

评论数:0

sizeof 计算原则

sizeof()计算类大小的一些基本原则: (1)类的大小为类的非静态成员数据的类型大小之和,也就是说静态成员数据不作考虑; (2)类的总大小也遵守类似class字节对齐的,调整规则;(参考5分钟搞定内存字节对齐) (3)成员函数都是不会被计算的; (4)如果是子类,那么父类中的成...

2016-03-08 19:55:29

阅读数:305

评论数:0

C++primer 17.2 bitset类型

bitset类型使得位运算更为容易,定义在头文件bitset中定义和初始化bitset定义bitset时需声明包含多少位: bitset<32> bits(1u);//定义一个32位第一位为1 其他位为0 的bitsetbitset初始化的方法: bitset<n&g...

2015-11-01 20:56:35

阅读数:230

评论数:0

C++primer 17.4 随机数

c语言的库函数 rand 生成的随机数为为随机数。 c++提供随机数引擎类和随机数分布类、 头文件: random随机数引擎:随机数引擎的例子:default_random_engine e; for (int i = 1;i <= 10;i++) cout << e...

2015-11-01 19:13:57

阅读数:333

评论数:0

为什么构造函数不能为虚函数(转)

1从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2从实现上看,vbtl在构造函...

2015-10-31 16:08:26

阅读数:267

评论数:0

C/C++之回调函数

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。函数指针 (1)概念:指针是一...

2015-09-23 11:31:48

阅读数:336

评论数:0

指针函数与函数指针

概念【指针函数】:返回指针的函数。重点是它是一个函数,只是返回值由普通的值或对象变成了指针,也就是说这个函数返回的是一块内存的地址。【函数指针】:指向函数的指针。重点是它是一个指针,只是它指向的内容由普通的变量或对象变成了函数,也就是说它可以指向函数的入口地址。指针函数#include <i...

2015-09-20 23:40:46

阅读数:252

评论数:0

C++ 模板与泛型编程

例子:比较两个值的函数模板template <typename T> int compare(const T &t1, const T &t2) { if (t2 < t1) return 1; if (t1 < t2) return -1;...

2015-08-07 01:20:08

阅读数:485

评论数:0

解决爆栈,手动加栈!

解决爆栈最好的方法是改变写法,用BFS,或者用数组模拟栈。c++: 放在头文件前面#pragma comment(linker,"/STACK:1024000000,1024000000")

2015-07-29 17:13:08

阅读数:1910

评论数:0

unique 函数 c++

一 unique函数 作用:从序列中“删除”所有相邻的重复元素。 既然是删除相邻的重复元素,所以要保证序列有序,用之前要把序列排序,调用sort()函数。在STL中unique函数是一个去重函数, unique的功能是去除相邻的重复元素(只保留一个),其实它并不真正把重复的元素删除,是把重复...

2015-07-29 10:20:33

阅读数:907

评论数:0

c++ string 类的 ”数值转换“ 操作

实现标准库string和数值数据之间的转换。int a = 45; string s = to_string(a);//将整数转换为string表示形式 double d = stod(s);//将字符转换为浮点数其他函数:stoi(s, p, b);//返回s字符串的整数表达的数值。依次为 in...

2015-07-26 11:01:34

阅读数:633

评论数:0

数组指针和指针数组

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an ar...

2015-06-10 00:41:44

阅读数:451

评论数:0

类型别名

传统方法 使用 typedef 关键字 用法 :typedef LOL long long ; c11 新标准 :using LOL = long long; = 左边的名字规定为右侧的别名。

2015-06-09 00:49:11

阅读数:1228

评论数:0

四种GCC内置位运算函数

int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4。 int __builtin_clz (unsigned int x) 返回前导的0的个数。 int __builtin_ctz (...

2015-06-06 01:02:51

阅读数:369

评论数:0

INT ,LONG , LONG LONG类型的范围

输出:unsigned int 0~4294967295 %uint 2147483648~2147483647 %dunsign...

2015-06-05 23:23:22

阅读数:430

评论数:0

输入输出外挂

遇到卡时间比较死的题目的时候可以用 #include #include #include #include #include using namespace std; //适用于正负整形数 template inline bool scan_d(T &ret) { c...

2015-03-15 21:31:08

阅读数:566

评论数:0

C++ inline 函数(转)

(一)inline函数(摘自C++ Primer的第三版)在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。      inline int min(int first, int secend) {/****/};      inline 函数对编译器而言必须是可见的...

2015-03-09 18:59:00

阅读数:582

评论数:0

C++ volatile关键字

volatile的介绍 volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)...

2015-03-01 21:33:18

阅读数:835

评论数:0

stl reverse 函数

功能:翻转字符串 ,翻转数组, 用于STL的翻转。 头文件: 例子: #include #include #include #include #include #include #include #include #include #include #include #include #i...

2015-02-04 13:49:16

阅读数:1664

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭