roxell

导航

sgi stl 说明文档笔记

Associative Container
提供基于Keys的取值操作,不同于Sequence的地方是不提供指定位置的插入操作。
和其他的container一样,其中的元素的类型是value_type,每个元素还有一个键值类型是key_type。由于所有的元素都是基于Key来存储的,所以这些keys是不能改变的。

Back Insertion Sequence(containers/concept)
该类型的sequence可以在结尾处插入和访问元素, sequence是一种container。

back_insert_iterator<BackInsertionSequence>
这种iterator构造的时候需要通过container,不能随便赋值。对构造完的back_insert_iterator对象进行赋值就等同于push_back(),不改写原先container中的值;而一般的iterator不但可以直接赋值,在对*iterator进行赋值的时候可以改写当前指向的值。

basic_string<charT, traits, Alloc>
首先明确该类是保存字符的Sequence Container。大部分情况我们使用的都是string和wstring,也就是basic_string<char>和basic_string<wchar_t>。
basic_string的一些成员函数用不同于一般的方法来保存位置和范围。许多成员函数用单独的size_type类型的值pos来表示位置,实际的位置是begin()+pos。有些函数使用pos和n来表示范围,实际范围是begin()+pos,begin()+pos+n。
根据c++标准,basic_string的iterator的失效语法比较特别。在sgi的实现中只有改变string的内容的函数才能使iterator失效。

Character Traits
有些类,例如string,需要对字符进行操作。Character Traits封装了关于一种特殊字符类型的信息和基于这种类型的操作。
Character Traits中的成员函数都是静态的,不需要创建


equal
用来判断一段范围内的值是否相同。

equal_range
二叉查找的一种,返回一对儿iterator来表示结果的范围.这对iterator也是按照前闭后开的原则来定义的.例如,int A[] = { 1, 2, 3, 3, 3, 5, 8 };
如果查找2,一个iterator指向2,另一个指向3;
如果查找3,一个iterator指向3,另一个指向5;
如果查找4,两个指针都指向5,表示没有结果,可以在当前指向的位置插入4.

euqual_to<T>
f(x,y) 如果x==y返回true;

Equality Comparable
用来描述==关系的。

fill
对于一对iterator之间的元素进行赋值。

fill_n
对于一个iterator和其后n-1共计n个元素进行赋值。

posted on 2004-10-14 11:15  命中注定宝剑会发出嘟嘟嘟的讯号  阅读(207)  评论(0编辑  收藏  举报