关联容器 Set和Multiset

/ 0评 / 0

set和multiset

 内部元素有序排列,新元素插入的位置取决于它的值,查找速度快。

 除了各容器都有的函数外,还支持以下成员函数:

multiset

template
class multiset { …… };
template
struct less : public binary_function
{ bool operator()(const T& x, const T& y) { return x < y ; } const; };
//less模板是靠 < 来比较大小的

multiset 的成员函数

iterator find(const T & val);
// 在容器中查找值为val的元素,返回其迭代器。如果找不到,返回end()。

iterator insert(const T & val);
// 将val插入到容器中并返回其迭代器。

void insert( iterator first,iterator last); 
// 将区间[first,last)插入容器。

int count(const T & val);
//  统计有多少个元素的值和val相等。

iterator lower_bound(const T & val);
// 查找一个最大的位置 it,使得[begin(),it) 中所有的元素都比 val 小。

iterator upper_bound(const T & val);
// 查找一个最小的位置 it,使得[it,end()) 中所有的元素都比 val 大。

pair equal_range(const T & val);
// 同时求得lower_bound和upper_bound。

iterator erase(iterator it);
//删除it指向的元素,返回其后面的元素的迭代器(Visual studio 2010上如此,但是在C++标准和Dev C++中,返回值不是这样)。

multiset 的用法

#include 
#include 
#include 
using namespace std;

template
void Print(T first, T last)
{
    for(; first != last; first++)

发表评论

电子邮件地址不会被公开。 必填项已用*标注