STL中set和map

set 可以认为是数学上的集合,集合中的元素不允许有重复。set特有的操作是高效的插入、删除和执行基本查找。

       set的插入方法是 insert,由于集合元素的唯一性,insert操作不一定会成功,insert操作返回的是一个比较复杂的类型,是一个指示插入位置和插入是否成功的复合类型。STL中定义了一个名称为pair的模板,该类模是:

       pair<iterator,bool> insert( const Object & x );

       pair<iterator,bool> insert(  iterator hint,const Object & x );

一般情况下,双参数的insert由于指定了位置,其执行速度要比单参数的函数执行速度快。

       set的删除操作有以下三种:

       int erase( const object & x);  找到并删除该元素,返回删除元素的个数(0 或者 1)

       iterator erase( iterator itr) ; 删除该迭代器指向的元素。

       Iterator erase(iterator start, iterator end ); 删除一个区间内的元素,不包括尾部元素。

       set  支持的查找操作是:

       iterator find( const Object & x );

map 容器

       map用来存储排序后的由键(key)和值(value)组成的项的集合。但是多个键可以共同对应一个值,因此,值不需要唯一,在map中的键保持逻辑排序后的顺序。Map 和 python中的字典是一样的道理。

Map 中存储的元素都是

       Pair<KeyType,ValueTyep> 的形式。Map 的迭代器指向的也是这么一个对。

 在map中执行查找操作可以使用[ ]运算符。

       ValueType & operator[ ] (const KeyType & key );

pp
原文地址:https://www.cnblogs.com/wangxiaoyong/p/8783372.html