3.迭代器简介
除了使用下标来访问vector对象的元素外,标准库还提供了访问元素的方法:使用迭代器。迭代器是一种检查容器内元素并且遍历元素的数据类型。
百科释义:
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做...
分类:
其他好文 时间:
2014-10-04 23:11:57
阅读次数:
189
跟上篇实现stack的思路一致,我增加了一些成员函数模板,支持不同类型的Queue之间的复制和赋值。 同时提供一个异常类。 代码如下: #ifndef QUEUE_HPP
#define QUEUE_HPP #include "Exception.h"
#include class EmptyQue...
分类:
其他好文 时间:
2014-10-04 22:27:07
阅读次数:
228
vector是同一种对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库将负责管理与存储元素相关的类存。引入头文件
#include
1.vector对象的定义和初始化
vector v1 vector保存类型为T的对象。默认构造函数,v1为空
vector v2(v1) v2是v1的一个副本
vector v3(n,i) ...
分类:
其他好文 时间:
2014-10-04 22:23:07
阅读次数:
310
本文实现了STL中stack的大部分功能,同时添加了一些功能。 注意以下几点: 1.Stack是一种适配器,底层以vector、list、deque等实现 2.Stack不含有迭代器 在本例中,我添加了几项功能,包括不同类型stack之间的复制和赋值功能,可以实现诸如Stack >和Stack >之...
分类:
其他好文 时间:
2014-10-04 22:21:07
阅读次数:
225
ruby中的win32ole是一个标准库,使用的时候只要添加require 'win32ole'就行。下面是一段模拟一个登陆的代码 1 require 'win32ole' 2 3 ie = WIN32OLE.new('internetExplorer.application') 4 5 ie......
前面我们使用了uninitialized_fill,来批量初始化某一段内存。 下面提供三个函数的实现代码,这三个代码的共同点是: 1.遇到错误,抛出异常 2.出现异常时,把之前构造的对象全部销毁 所以,这三个函数要么成功,要么无任何副作用。使用异常来通知使用者,所以在catch块中,处理完异常后要将...
分类:
其他好文 时间:
2014-10-03 02:33:33
阅读次数:
324
第3章 标准库类型
1.任何存储string的size操作结果的变量类型必须为string::size_type类型。
2.同理存储vector的size值应使用类似vector::size_type的类型变量
3.使用for(vector::size_type ix=0; ix != ivec.size(); ++ix)的风格 a.使用!=的效率更高 b.在循环过程中可能ivec的元素个数...
分类:
编程语言 时间:
2014-10-03 01:26:33
阅读次数:
411
string标准库固然强大,但是仍然有一些处理字符串的优秀数据结构。Trie(前缀树)就是其中之一,它通过在树上对不同字符串的相同字符只记录一次,来实现对多个字符串的"压缩":可以认为多个字符串被压成了一个超级大的字符串。int ch[10000][26],cnt[10000];int sz=1; ...
分类:
其他好文 时间:
2014-10-02 23:21:23
阅读次数:
187
自己实现Allocator并不难,其实只需要改变allocate和deallocate,来实现自己的内存分配策略。 下面是一个std::allocator的模拟实现 #ifndef ALLOCATOR_HPP
#define ALLOCATOR_HPP #include #include templ...
分类:
其他好文 时间:
2014-10-02 20:34:33
阅读次数:
264
注意几点:
分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。
所以应该使用标准库提供的allocator类来实现内存的控制。当然也可以重载operator new操作符,因为二者都是使用malloc作为底层实现,所以直接采用malloc也可以。
对象的复制必须使用系统提供的uninitialized_fill和uninitialized_...
分类:
编程语言 时间:
2014-10-02 18:37:43
阅读次数:
231