
STL中的内存池管理技术
一、STL中的内存管理 当我们new一个对象时,实际做了两件事情:(1)使用malloc申请了一块内存。(2)执行构造函数。在SGI中,这两步独立出了两个函数:allocate申请内存,construct调用构造函数。这两个函数分别在<...
一、STL中的内存管理 当我们new一个对象时,实际做了两件事情:(1)使用malloc申请了一块内存。(2)执行构造函数。在SGI中,这两步独立出了两个函数:allocate申请内存,construct调用构造函数。这两个函数分别在<...
写在前面: 0. 所谓泛型编程就是独立于任何特定类型的方式编写代码,使用泛型程序时,需要提供具体陈旭实例所操作的类型或者值。我们经常用到STL容器、迭代器、和算法都是泛型编程的例子; 模板是C++支持参数化多态的工具,使用模板可以使用户为类...
1,元组简介 tuple是一个固定大小的不同类型值的集合,是泛化的std::pair。我们也可以把他当做一个通用的结构体来用,不需要创建结构体又获取结构体的特征,在某些情况下可以取代结构体使程序更简洁,直观。st...
1、为什么静态成员不能在类内初始化? 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。 class A { private: static in...
我们知道,构造方法是用来初始化类对象的。如果在类中没有显式地声明构造函数,那么编译器会自动创建一个默认的构造函数;并且这个默认的构造函数仅仅在没有显式地声明构造函数的情况下才会被创建创建。 &...
vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。 vector 是C++ STL的一个重要成员,...
顺序容器包括vector、deque、list、forward_list、array、string,所有顺序容器都提供了快速顺序访问元素的能力。 关联容器包括set、map 关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存...
1,pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个...
C++11之前主要有以下几种初始化方式: //小括号初始化 string str("hello"); //等号初始化 string str="hello"; //POD对象与POD数组列表初始化 struct Studnet { char*...
0.多态 C++的抽象、封装、继承和多态几大特性当中,多态是最为重要的一个。所谓多态(这里指狭义的多态)就是父类指针或引用指向子类对象,然后可以通过父类指针或引用调用子类的成员函数。 刚开始学习多态的时候,觉得多态非常神奇,同时也非常费解。...