赞
踩
目录
在前几篇文章中,已经学习了二叉搜索树,二map和set的底层就是<key, value>结构。也叫做关联式容器。
- template <class T1, class T2>
- struct pair
- {
- typedef T1 first_type;
- typedef T2 second_type;
- T1 first;
- T2 second;
- pair() : first(T1()), second(T2())
- {}
- pair(const T1& a, const T2& b) : first(a), second(b)
- {}
- };
函数声明
|
功能介绍
|
set (const Compare& comp = Compare(), const Allocator&
= Allocator() );
|
构造空的
set
|
set (InputIterator first, InputIterator last, const
Compare& comp = Compare(), const Allocator& =
Allocator() );
|
用
[first, last)
区
间中的元素构造
set
|
set ( const set<Key,Compare,Allocator>& x);
|
set
的拷贝构造
|
函数声明 | 功能介绍 |
iterator begin()
|
返回
set
中起始位置元素的迭代器
|
iterator end()
|
返回
set
中最后一个元素后面的迭代器
|
const_iterator cbegin()
const
|
返回
set
中起始位置元素的
const
迭代器
|
const_iterator cend() const
|
返回
set
中最后一个元素后面的
const
迭代器
|
reverse_iterator rbegin()
|
返回
set
第一个元素的反向迭代器,即
end
|
reverse_iterator rend()
|
返回
set
最后一个元素下一个位置的反向迭代器,
即
rbegin
|
const_reverse_iterator
crbegin() const
|
返回
set
第一个元素的反向
const
迭代器,即
cend
|
const_reverse_iterator
crend() const
|
返回
set
最后一个元素下一个位置的反向
const
迭
代器,即
crbegin
|
函数声明
|
功能介绍
|
pair<iterator,bool> insert (
const value_type& x )
|
在
set
中插入元素
x
,实际插入的是
<x, x>
构成的
键值对,如果插入成功,返回
<
该元素在
set
中的
位置,
true>,
如果插入失败,说明
x
在
set
中已经
存在,返回
<x
在
set
中的位置,
false>
|
void erase ( iterator position )
|
删除
set
中
position
位置上的元素
|
size_type erase ( const
key_type& x )
|
删除
set
中值为
x
的元素,返回删除的元素的个数
|
void erase ( iterator first,
iterator last )
|
删除
set
中
[first, last)
区间中的元素
|
void swap (
set<Key,Compare,Allocator>&
st );
|
交换
set
中的元素
|
void clear ( )
|
将
set
中的元素清空
|
iterator find ( const
key_type& x ) const
|
返回
set
中值为
x
的元素的位置
|
size_type count ( const
key_type& x ) const
|
返回
set
中值为
x
的元素的个数
|
- #include <set>
- void TestSet()
- {
- // 用数组array中的元素构造set
- int array[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0, 1, 3, 5, 7, 9, 2, 4,
- 6, 8, 0 };
- set<int> s(array, array + sizeof(array) / sizeof(array));
- cout << s.size() << endl;
- // 正向打印set中的元素,从打印结果中可以看出:set可去重
- for (auto& e : s)
- cout << e << " ";
- cout << endl;
- // 使用迭代器逆向打印set中的元素
- for (auto it = s.rbegin(); it != s.rend(); ++it)
- cout << *it << " ";
- cout << endl;
- // set中值为3的元素出现了几次
- cout << s.count(3) << endl;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。