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 方法对模板变量赋值,无论 ...
随机推荐
- DSP TMS320C6000基础学习(3)——CCS v5软件开发环境搭建
================================================== DSP CCS工程文件构成 =================================== ...
- (转载)C# 编程 使用可空类型
转载出处为://https://msdn.microsoft.com/zh-cn/library/2cf62fcy(vs.90).aspx#Anchor_1 C#可以为 null 的类型可以表示基础类 ...
- Python入门-----介绍
摘要:Python语言的特点 ----->优雅.明确.简单 一.Python适合的领域 web网站和各种网络服务 系统工具和脚本 作为“胶水”语言,把其他语言开发的模块包装起来方便使用 二.Py ...
- C语言初学 比较五个整数并输出最大值和最小值2
#include <stdio.h> int main() { int i,a[5]; int max = 0,min = 0; printf("输入5个整数(空格隔开) :\n ...
- C语言初学 if-else语句判别在ASCII值中小于32的可控制符的类型
#include<stdio.h> main() { char c; printf("输入一个符号\n"); c=getchar(); if(c<32) prin ...
- Swift--存储属性-备
Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据. 存储属性可以存储数据,分为常量属性(用关键字let定义) ...
- 一步步教你如何源码编译Recovery
*1 准备Ubuntu作为您的操作系统,笔者的版本是12.04_amd64. *2 准备 Android 源码的编译环境,主要是安装一些编译用到的lib库,以及同步源码的一些工具 ,如GIT,CURL ...
- 这样就算会了PHP么?-5
汇集一点关于数据深入一些的几个函数,去重,弹出,加入,查找.... <?php $str = "时装,休闲,职业装"; $strs = explode(",&quo ...
- TranslateAnimation详解
TranslateAnimation详解 Android JDK为我们提供了4种动画效果,分别是: AlphaAnimation,RotateAnimation, ScaleAnimation, Tr ...
- java开源资源
开到一遍不错的java开源整理,摘录一下,后续遇到好的继续更新. 构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置 ...