struct和union的区别

struct (结构体)与union (联合体)是C语言中两种不同的数据结构,两者都是常见的复合结构,其区别主要表现在以下两个方面: 结构体与联合体虽然都是

typedef和define的区别

typedef与define都是替一个对象取一个别名,以此来增强程序的可读性,但是它们在使用和作用上也存在着以下几个方面的不同: 1) 原理不同。

栈空间的最大值是多少?

在windows下,栈地址是向低地址扩展的数据结构,是一块连续的内存区域。栈顶的地址和栈的最大容量是系统预先规定好的,在windows下,栈

解析"export"

为了访问其他编译单元(如另一代码文件)中的变量或对象,对普通类型(包括基本数据类、结构和类),可以利用关键字extern,来使用这些变量或对

前置运算符和后置运算符的区别

以++操作为例,对于变量a, ++a表示取a的地址,增加它的内容,然后把值放在寄存器 中;a++表示取a的地址,把它的值装入寄存器,然后增加内存

数组和指针的区别

指针可以随时指向任意类型的内存块,而数组可以在静态存储区被创建。例如,全局数组 可以在栈上被创建。从原理与定义上看,虽然指针与数组表示的是不同

numeric库操作总结

accumulate 介绍 template <class InputIterator, class T> T accumulate (InputIterator first, InputIterator last, T init); template <class InputIterator, class T, class BinaryOperation> T accumulate (InputIterator first, InputIterator last, T init, BinaryOperation binary_op); 1 2 3 4 5 6 7 8 9 template <class InputIterator, class T> T accumulate (InputIterator first, InputIterator last, T init) { while (first!=last) { init = init + *first; // or: init=binary_op(init,*first) for the binary_op

数据结构:list、forward_list

list 概述 相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对

数据结构:deque、stack、queue

deque 概述 vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空 间。所谓双向开口,意思是可以在头尾两端分别做元素的插人和删

数据结构:vector、priority_queue

vector 概述 vector的数据安排以及操作方式,与array非常相似。两者的唯一差别在于 空间的运用的灵活性。array是静态空间,一旦配置了就不能

空间配置器Allocator

Allocator 一般而言,我们所习惯的C++内存配置操作和释放操作是这样的: class Foo {}; Foo* pf = new Foo; // 配置内存,然后构造对象 delete pf; //将对象析构,然后

malloc/free的用法详解

malloc()函数 malloc的全称是memory allocation,中文叫动态内存分配。 extern void *malloc(unsigned int num_bytes); 说明: 分配长度为num_bytes字

用引用方式捕捉异常

当你写一个 catch 子句时,必须确定让异常通过何种方式传递到 catch 子句里。你可以 有三个选择:与你给函数传递参数一样,通过指针(by pointer),通过

不要以多态方式处理数组

类继承的最重要的特性是你可以通过基类指针或引用来操作派生类。这样的指针或引用具有行为的多态性,就好像它们同时具有多种形态。C++允许你通过基