读书人

STL学习之set器皿

发布时间: 2012-06-24 19:01:53 作者: rapoo

STL学习之set容器

set容器只是单纯的键的集合。

除了两种例外情况外,set容器支持大部分的map操作。

两种例外包括:set容器不支持下标操作符,而且没有定义mapped_type类型。在set容器中,value_type类型不是pair类型,而是与key_type相同的类型。与map一样,set容器存储的键也必须唯一,而且不能修改。

构造函数:


和map中此函数定义类似。

set<string> set1; //第一中定义

set1.insert("this");

set1.insert("hello");

//第二种定义

set<string>::iterator positon;

postion = set1.begin();

set1.insert(position, "insert");

//第三种定义

set<int> iset2;

iset2.insert(ivect.begin(),ivect.end());

与map容器的操作一样,带有一个键值参数的insert返回pair类型对象,包含一个迭代器和一个bool值,迭代器指向拥有该键的元素,而bool值表明是否添加了元素。


从set容器中获取元素

set容器中不提供下标操作符。为了通过键从set中获取元素,可使用find。如果只是简单的判定某个元素是否存在,可以使用count。

正如不能修改map中的键值一样,set容器中的键值也是const。在获取set容器中的某个元素迭代器后,只能对其做读操作,而不能做写操作:

set<int>::iterator set = iset.find(1);

*set = 11;//错误

cout << *set << endl; //正确


读书人网 >编程

热点推荐