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 方法对模板变量赋值,无论 ...
随机推荐
- 针对AJAX与JSONP的异同
针对AJAX与JSONP的异同 1.ajax和jsonp这两种技术在调用方式上“看起来”很像,目的也一样,都是请求一个url,然后把服务器返回的数据进行处理,因此jquery和ext等框架 ...
- xml2js
实际做项目的时候会有很多的XML配置文件,有些XML多达上千行,比如物品,武将的配置,一般的手游项目是直接解析XML文件,这就引发2个问题. 1.XML是明文,代码中解析必要要做加密. 2.有些配置过 ...
- php 输出昨天,今天,明天是星期几的方法
<?php //php判断某一天是星期几的方法 function getWeek($unixTime=''){ $unixTime=is_numeric($unixTime)?$unixTime ...
- centos卸载自带的apache(httpd)
.[root@localhost etc]# rpm -qa|grep httpd,查看与httpd相关软件包. httpd--.el5_2.CentOS. .然后删除httpd: [root@loc ...
- django 模板视图,表单视图,各种视图
Generic editing views¶ The following views are described on this page and provide a foundation for e ...
- 消息机制2 - Windows程序设计(SDK)005
消息机制2 让编程改变世界 Change the world by program 内容节选: 关于消息机制,还有三点需要补充: 消息队列是FIFO的形式 WM_PAINT,WM_TIMER 和 WM ...
- Asp.Net 控件radio 的简单使用
js: <script type="text/javascript"> function ok() { document.getElementById("tx ...
- odoo10会计期间
从odoo9,会计模块重构之后,去掉了account.fiscalyear 以及 account.period 这两个模型, 但不表示 odoo 从此就没有 "会计年度"和&quo ...
- 关于css中overflow的一些理解
在做移动端开发的时候,遇到过这么个问题:要把图片进行放大,但有时候图片比较长,一个手机的版面看不了,于是需要用到overflow的属性,刚开始用了overflow-y:scroll, 于是问题来了,如 ...
- Configuring HTTP and HTTPS
Configuring HTTP and HTTPS .NET Framework (current version) Other Versions WCF services and clie ...