一般而言,我们习惯的 C++ 内存配置操作和释放操作是这样的:1 class FOO{};2 FOO
*pf = new FOO; 3 delete pf; 我们看其中第二行和第三行,虽然都是只有一句,但是都完成了两个动作。但你 new
一个对象的时候两个动作是:先调用::operato...
分类:
其他好文 时间:
2014-07-22 23:14:35
阅读次数:
399
C
标准库==============================================================================================C++
标准库 STL标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,...
分类:
编程语言 时间:
2014-07-22 23:08:13
阅读次数:
359
标准模板库STL1、泛型程序设计C++语言的核心优势之一就是便于软件的重用C++中有两个方面体现重用:
1.面向对象的思想:继承和多态,标准类库
2.泛型程序设计(genericprogramming)的思想:模板机制,以及标准模板库STL简单地说就是使用模板的程序设计法。将一些常用的数据结构(.....
分类:
其他好文 时间:
2014-05-01 12:19:51
阅读次数:
434
c++中,Deque容器和vector相似,deque内部也采用动态数组来管理元素,支持随机存取。。头文件1.deque和vector的不同之处:1)两端都可以较快速地按插元素和删除元素,而vector只能在尾端进行2)在对内存有所限制的系统中,deque可以包含更多的元素,因为它不止一块内存。因此...
分类:
编程语言 时间:
2014-05-01 10:10:02
阅读次数:
500
1.stable_sort 和 sort的区别在于 前者作排序可以使原来的"相同"的值在序列中的相对位置不变
如 1 4 6 7 4' (4 和 4'值相等,加上' 表示是2个元素)
那么stable_sort能保证排序完 4 仍然在4' 前 也就是输出1 4 4' 6 7;但是sort 没有这个功能,算法不能保证这一点
2.在标准算法中的一部分算法 如果这个算法默认使用的是
...
分类:
其他好文 时间:
2014-04-29 13:45:20
阅读次数:
273
从开始看STL源码到今天差不多有一个月的时间了,在这研读STL源码过程中确实学习到了很多,深深被大师们的设计思想所打动。其中使用迭代器的思想是其STL的最大的亮点,通过泛型编程,是得所有的容器对外都提供统一的访问接口,而屏蔽掉了各个容器底层实现的细节。相对了面向对象的编程,泛型编程同样能够实现多态的功能,而且还具有更高的安全性以及效率,因为泛型编程就是编译期间就已经决定了变量的类型。...
分类:
其他好文 时间:
2014-04-29 13:36:19
阅读次数:
701
#include
using namespace std;
template
class testClass{
public:
static int _data;
};
int testClass::_data = 1;
int testClass::_data = 2;
int main()
{
cout ::_data << endl;
cout ::_data << ...
分类:
其他好文 时间:
2014-04-29 13:21:20
阅读次数:
410
对于逆向迭代器,很重要的一点是需要弄清楚逻辑位置和实际位置二者的区别。
下图显示了逆向迭代器的位置和所指的数值:
可以发现,逆向迭代器所指位置(实际位置)和所代表的的数值(逻辑位置或数值)是不同的。C++这么做是有其原因的。导致这个行为的原因是区间的半开性。为了能够制定容器内的所有元素,我们必须运用最后一个元素的下一个位置。但是对于reverse迭代器而言,这个位置位于第一个元素之...
分类:
其他好文 时间:
2014-04-29 13:14:21
阅读次数:
367
STL实践与分析--容器特有的算法 与其他顺序容器所支持的操作相比,标准库为list容器定义了更精细的操作集合,使它不必只依赖于泛型操作。其中很大的一个原因就是list容器不是按照内存中的顺序进行布局的,不支持随即访问,这样,在list容器上就不能使用随即访问迭代器的算法,如sort等;还有其他的一些算法如:merge、remove、reverse和unique,虽然可以用在list上,但却...
分类:
编程语言 时间:
2014-04-27 21:45:04
阅读次数:
474
STL实践与分析--泛型算法的结构引言: 正如所有的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础。 算法最基本的性质是需要使用的迭代器种类。所有算法都指定了它的每个迭代器形参可使用的迭代器类型。比如,如果形参必须为随机访问迭代器则可提供vector或 deque类型的迭代器,或者提供指向数组的指针。而其他容器的迭代器不能用在这类算法上。 C++还提供了另外两种算法模式...
分类:
编程语言 时间:
2014-04-27 21:36:05
阅读次数:
392