SGI STL是最健壮的STL实现之一,增加了很多扩充的容器,包括hash_set、hash_map、slist(单链表)、rope(它是一个string的变种,对非常大型的字符串、字符串的快速连接和取
字串等操作进行了优化)。
一、构造函数
默认构造函数、部分后全部复制另外一个hash_set
hash_set
hs1.insert(10);
hs1.insert(20)
hs1.insert(30);
hs1.insert(40);
hash_set
hash_set
bIter = hs1.begin();
eIter = hs1.end();
bIter++;
eIter--;
hash_set
二、提供与set一样的操作,但性能上优越些
正向迭代
for(hash_set
cout<<*ite<
for(hash_set
cout<<*ite<
重新置hash_set为空:clear()成员函数;
统计hash_set中某个元素的个数:count( element );要么是1(即出现了该元素),要么是0(即没出现这样的元素)
交换两个hash_set之间的元素:swap(有两种版本:一种是hash_set自身的成员函数;一种是
hash_set
hs1.insert(10);
hs1.insert(20);
hs1.insert(30);
hs2.insert(100);
hs2.insert(200);
hs3.insert(3000);
hs1.swap(hs2); //此时,hs1中的元素就是100,200
swap(hs1, hs3); //此时,hs1中的元素就是3000
查找某个元素:find()成员函数;
判断是否为空:empty()成员函数;
查找指定元素的键值:hash_delegate(); 还有成员函数lower_bound()、upper_bound()和equal_range(),以及操作运算符operatorXx 等。
hash_set
Myhash_set::hasher^ myhash = Myhash_set.hash_delegate();
cout<<"hash(L'a') = "<