set用法总结
set集合用于存放不重复的元素 template <class Key, class Compare = less<Key>, class Alloc = alloc>
class set
{
......
private:
typedef rb_tree<key_type identity="" ,=""><value_type value_type,="">, key_compare, Alloc> rep_type;
rep_type t; //set内部的实现实际上是一个红黑树
......
};
Constructors
set
Constructs a set that is empty or that is a copy of all or part of some other set.
set默认的比较器是不允许 有相同元素的,不过你可以重新定义一个比较器
Typedefs
allocator_type
A type that represents the allocator class for the set object.
const_iterator
A type that provides a bidirectional iterator that can read a const element in the set.
const_pointer
A type that provides a pointer to a const element in a set.
const_reference
A type that provides a reference to a const element stored in a set for reading and performing const operations.
const_reverse_iterator
A type that provides a bidirectional iterator that can read any const element in the set.
difference_type
A signed integer type that can be used to represent the number of elements of a set in a range between elements pointed to by iterators.
iterator
A type that provides a bidirectional iterator that can read or modify any element in a set.
key_compare
A type that provides a function object that can compare two sort keys to determine the relative order of two elements in the set.
key_type
The type describes an object stored as an element of a set in its capacity as sort key.
pointer
A type that provides a pointer to an element in a set.
reference
A type that provides a reference to an element stored in a set.
reverse_iterator
A type that provides a bidirectional iterator that can read or modify an element in a reversed set.
size_type
An unsigned integer type that can represent the number of elements in a set.
value_compare
The type that provides a function object that can compare two elements to determine their relative order in the set.
value_type
The type describes an object stored as an element of a set in its capacity as a value.
Member Functions
begin
Returns an iterator that addresses the first element in the set.
clear
Erases all the elements of a set.
如果当前容器中的元素是自己new出来的对象指针,那么在调用clear或erase函数之前,需要自己先释放掉这部分内存。
否则会有内存泄露。
count
Returns the number of elements in a set whose key matches a parameter-specified key.
set<int> s1; set<int>::size_type i;
s1.insert(1); s1.insert(1); // Keys must be unique in set, so duplicates are ignored i = s1.count(1);
cout << "The number of elements in s1 with a sort key of 1 is: " << i << "." << endl;
i = s1.count(2);
cout << "The number of elements in s1 with a sort key of 2 is: " << i << "." << endl;
结果分别为1和0.
对于set而言,只存在1(表示关键字在set中)或0(关键字不在set中)两种情况。
empty
Tests if a set is empty.
end
Returns an iterator that addresses the location succeeding the last element in a set.
equal_range
Returns a pair of iterators respectively to the first element in a set with a key that is greater than a specified key and to the first element in the set with a key that is equal to or greater than the key.
pair<iterator,iterator> equal_range(const key_type & x) const
返回容器中关键字等于x(满足==x关系)的元素区间。返回值[pair.first, pair.second]均满足该关系。
如果只是判断元素是否存在,可以使用count函数检查返回值;
erase
Removes an element or a range of elements in a set from specified positions or removes elements that match a specified key.
如果当前容器中的元素是自己new出来的对象指针,那么在调用clear或erase函数之前,需要自己先释放掉这部分内存。
否则会有内存泄露。
find
Returns an iterator addressing the location of an element in a set that has a key equivalent to a specified key.
get_allocator
Returns a copy of the allocator object used to construct the set.
insert
Inserts an element or a range of elements into a set.
pair<iterator, bool> insert(const value_type& x)
将一个元素插入当前set容器。返回值pair的第一个元素,表示插入位置的迭代器;第二个元素,表示是否插入到容器中,只有该值为true,迭代器才有效。
检查是否插入成功可以如下:
std::pair<std::set<int>::iterator,bool> insert_pair;
insert_pair = set_nums.insert(RandomOneNum(min,max,bNegative));
if (insert_pair.second == true)
{
pNums[nIndex++] = *insert_pair.first;
}
key_comp
Retrieves a copy of the comparison object used to order keys in a set.
lower_bound
Returns an iterator to the first element in a set with a key that is equal to or greater than a specified key.
max_size
Returns the maximum length of the set.
rbegin
Returns an iterator addressing the first element in a reversed set.
rend
Returns an iterator that addresses the location succeeding the last element in a reversed set.
size
Returns the number of elements in the set.
swap
Exchanges the elements of two sets.
upper_bound
Returns an iterator to the first element in a set with a key that is greater than a specified key.
value_comp
Retrieves a copy of the comparison object used to order element values in a set.
Tests if the set or multiset object on the left side of the operator is not equal to the set or multiset object on the right side.
Tests if the set or multiset object on the left side of the operator is less than the set or multiset object on the right side.
Tests if the set or multiset object on the left side of the operator is less than or equal to the set or multiset object on the right side.
Tests if the set or multiset object on the left side of the operator is equal to the set or multiset object on the right side.
Tests if the set or multiset object on the left side of the operator is greater than the set or multiset object on the right side.
Tests if the set or multiset object on the left side of the operator is greater than or equal to the set or multiset object on the right side.
set也重载了[]运算符,可以像数组一样使用
注意的是set中数元素的值不能直接被改变
template <class Key, class Compare, class Alloc>
inline bool operator == (const set<Key, Compare, Alloc> & x, const set<Key, Compare, Alloc> & y)
判断两个set容器是否相等。全局函数,非成员函数。
template <class Key, class Compare, class Alloc>
inline bool operator < (const set<Key, Compare, Alloc> & x, const set<Key, Compare, Alloc< & y)
判断容器x是否小于y。全局函数,非成员函数。
set用法总结的更多相关文章
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
- chattr用法
[root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...
- 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)
vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...
- [转]thinkphp 模板显示display和assign的用法
thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...
随机推荐
- rdf
更多内容请看这里:http://www.w3school.com.cn/rdf/index.asp 资源描述框架 (RDF) 是描述网络中资源的 W3C 标准. RDF 是一个框架,用来描述网络资源, ...
- Python新手学习基础之数据类型——字符串的切片截取
切片截取是python中字符串常见的一些操作,我们会在这篇文章里详细介绍,切片截取的作用是获取子字符或子字符串. 实际上,我们要做的就是使用索引,用冒号分隔两个索引,形式为:变量[头下标:尾下标],冒 ...
- Activiti工作流学习-----基于5.19.0版本(8)
8.1.5 Start Event 继续上一篇的事件的分享笔记,Start Event指明该处是流程开始,至于开始事件的类型(消息到达开始,指定的事件循环开始等),定义如何开始是在开始事件圆圈图标里面 ...
- Java并发编程--同步容器
BlockingQueue 阻塞队列 对于阻塞队列,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤 ...
- DLog 技巧
#ifdef DEBUG#ifndef DLog# define DLog(fmt, ...) {NSLog((@"%s [Line %d] " fmt), __PRETTY_FU ...
- cocos2d-x Loading界面实现资源加载
有时候场景中的资源加载过多的话就会引起游戏进入的时候很卡,因为那是边加载边显示.在tests例子里面有一个很好的例子叫做TextureCacheTest,里面讲解了如何写loading. #inclu ...
- cf413E Maze 2D
E. Maze 2D time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...
- acdream1412:2-3 trees 组合数dp
题意: 给出一个标准2-3树的叶子节点(最底层节点)个数 L,求2-3数的形成方案数并取余 分析: 如果有L个叶子枚举 每个 可以使x*2+y*3=L 的 x y 那么在最底层就有 c(x+y,x) ...
- poj 2773 利用欧拉函数求互质数
题意:找到与n互质的第 k个数 开始一看n是1e6 敲了个暴力结果tle了,后来发现k达到了 1e8 所以需要用到欧拉函数. 我们设小于n的 ,与n互质的数为 (a1,a2,a3.......a(p ...
- Putty server refused our key的解决方法
在使用putty工具使用密钥远程登陆CentOS系统时,出现Putty server refused our key提示,解决办法: 1.查看是否关掉SELINUX. 相关命令:getenforce, ...