set[c++]
#include <iostream>
using namespace std;
#include <set>
int main(int argc, const char * argv[])
{
//set必须保证输出数据的唯一性
set<int> ss;
int a[] = {1,2,5,4,3,6,7,8};
//插入数据
for (int i=0; i<sizeof(a)/4; i++) {
ss.insert(a[i]);
}
//删除数据
for (set<int>::iterator p =ss.begin(); p!=ss.end(); ++p) {
if (*p==3) {
ss.erase(p);
}
}
//输出
for(set<int>::iterator p=ss.begin();p!=ss.end();++p)
{
cout<<*p<<endl;
}
return 0;
}
输出:1 2 4 5 6 7 8
集合(Set)是一种包含已排序对象的关联容器。多元集合(MultiSets)和集合 (Sets)相像,只不过支持重复对象,其用法与set基本相同。
1.begin() 返回指向第一个元素的迭代器
2.clear() 清除所有元素
3.count() 返回某个值元素的个数
9
4.empty() 如果集合为空,返回true
5.end() 返回指向最后一个元素的迭代器
6.equal_range() 返回第一个>=关键字的迭代器和>关键字的迭代器
语法:
pair <iterator,iterator>equal_range( const key_type &key ); //key是用于排序的关键字
Set<int> ctr;
例如:
Pair<set<int>::iterator,set<int>::iterarot>p; For(i=0;i<=5;i++) ctr.insert(i); P=ctr.equal_range(2); 那么*p.first==2;*p.second==3;
7.erase() 删除集合中的元素 语法:
iterator erase( iterator i ); //删除i位置元素
iterator erase( iterator start, iterator end ); //删除从start开始到end(end为第一个不被删除的值)结束的元素 size_type erase( const key_type &key ); //删除等于key值的所有元素(返回被删除的元素的个数) //前两个返回第一个不被删除的双向定位器,不存在返回末尾 //第三个返回删除个数
8.find() 返回一个指向被查找到元素的迭代器 语法:
iterator find( const key_type &key ); //查找等于key值的元素,并返回指向该元素的迭代器; //如果没有找到,返回指向集合最后一个元素的迭代器
9.get_allocator() 返回集合的分配器 10.insert() 在集合中插入元素
语法:
iterator insert( iterator i, const TYPE &val ); //在迭代器i前插入val
void insert( input_iterator start, input_iterator end ); //将迭代器start开始到end(end不被插入)结束返回内的元素插入到集合中
pair insert( const TYPE &val ); //插入val元素,返回指向该元素的迭代器和一个布尔值来说明val是否成功被插入 //应该注意的是在集合(Sets中不能插入两个相同的元素)
11.lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器 语法:
iterator lower_bound( const key_type &key );
//返回一个指向大于或者等于key值的第一个元素的迭代器 12.key_comp() 返回一个用于元素间值比较的函数
语法:
key_compare key_comp(); //返回一个用于元素间值比较的函数对象
13.max_size() 返回集合能容纳的元素的最大限值
10
14.rbegin() 返回指向集合中最后一个元素的反向迭代器 示例:
Set<int> ctr;
Set<int>::reverse_iterator rcp; For(rcp=ctr.rbegin();rcp!=ctr.rend();rcp++) Cout<<*rcp<<” ”;
15.rend() 返回指向集合中第一个元素的反向迭代器 16.size() 集合中元素的数目
17.swap() 交换两个集合变量
语法:
void swap( set &object ); //交换当前集合和object集合中的元素 18.upper_bound() 返回大于某个值元素的迭代器
语法:
iterator upwer_bound( const key_type &key ); //返回一个指向大于key值的第一个元素的迭代器
19.value_comp() 返回一个用于比较元素间的值的函数 语法:
iterator upper_bound( const key_type &key );//返回一个用于比较元素间的值的函数对象
随机推荐
- POJ 3322(广搜)
---恢复内容开始--- http://poj.org/problem?id=3322 题意:http://jandan.net/2008/01/24/bloxorz.html就是这个鬼游戏 我也是郁 ...
- poj 1700
http://poj.org/problem?id=1700 题目大意就是一条船,有N个人需要过河,求N个人最短过河的时间 #include <stdio.h> int main() { ...
- FastReport经验
FastReport经验 1.FastReport中如果访问报表中的对象? 可以使用FindObject方法. TfrxMemoView(frxReport1.FindObject(’memo1′)) ...
- ePass1000 Full ActiveX Control Reference Manual Version 2.0
ePass1000 Full ActiveX Control Reference Manual Version 2.0 Error Code Value Return Status Descripti ...
- 省市县联动dropdownlist
下面就是在提交按钮的单击事件中填写代码(代码区)(前提是把省市县的数据库建好) protected void Page_Load(object sender, EventArgs e) ...
- Word转图片(使用Spire.doc)
Spire.Doc for .NET是一款由E-iceblue公司开发的专业的Word .NET类库.支持.net,WPF,Silverlight, 下载地址:http://www.e-iceblue ...
- C# Arraylist + struct 综合练习 枚举ENUE 递归
枚举类型 一组常量的组合, 在不制定任何索引的情况下,默认第一个字段从0开始,之后的依次+1 在指定了某个索引的情况下,之后的依次+1 若之前定义的某字段的索引指向了之后的某个默认字段,那么他俩完全相 ...
- mongoDB 3.0以前版本 - 入门指南、示例
一.准备工作 1. 下载mongoDB 下载地址:http://www.mongodb.org/downloads 选择合适你的版本 相关文档:http://www.mongodb.org/displ ...
- 大数计算_BigNum优化_加减乘除乘方取余_带注释_数组
#include <iostream> #include <algorithm> #include <cstring> #include <cstdlib&g ...
- MVC4 @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别
1. RenderBody在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句:@Rend ...