码迷,mamicode.com
首页 > 其他好文 > 详细

set map

时间:2016-07-01 13:10:39      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

关联式容器

set键值和实际数值是一个值,不能包含重复元素,元素自动按从小到大排序,multiset可以包含重复元素的set

map是排序的结构体,键值不能重复,multimap允许有重复的键值

 

set(multiset)

map(multimap)

头文件

<set>

<map>

定义

#include<functional>

set<int,less<int>>s1 从小到大排序

set<int,greater<int>>s1,从大到小排序

#include<functional>

map<int,float,less<int>>mp1;

map<float,int, greater<float>>mp2;

初始化

map<float,int>mp3(mp2);

map<float,int>mp3(mp2.begin(),mp.end());

大小

s1.size()

s1.max_size();

mp.size()

mp.max_size()

计数

s1.count(10);元素10的个数

mp.count(10);10为键值

查找

set<int>::iterator it;

it= s1.find(10);

返回迭代器

 

map<int,double>::iterator it;

it= mp.find(10);

 

上界,下界函数

it=s1.low_bound(10)

返回大于等于10的第一个元素的指针

 

it=s1.up_bound(10)

返回大于10的第一个元素的指针

 

pair<set<int>::iterator,<set<int>::iterator> p;

p=s1.equal_range(10);

*p.first 是大于等于10第一元素

*p.second 是大于10第一个元素

也有lower_bound和upper_bound函数

赋值

s1=s2;

s1.swap(s2)

mp1=mp3;

mp1.swap(mp3)

迭代器

s1.begin(),s1.end(),s1,rbegin(),s1.rend()

mp.begin(),mp.end(),mp.rbegin(),mp.rend()

插入

1)  pair<iterator,bool> p1;

p1=s1.inset(17);

p1.second 是否成功插入

p1.first 插入位置的迭代器

p1.first-s1.begin()+1

2)iterator s1.intser(17) 返回插入的位置

3)s1.inser(s2.begin(),s2.end())

 

  typedefpair<int,double>mypair;

mp.insert(mypair(1,10));

mp.insert( mp.begin(),mypair(4,4.4));

移除

s1.erase(s1.begin());

s1.erase(s1.begin(),s1.end());

mp.erase(mp.begin());

mp.erase(mp.begin(),mp.end());

set map

标签:

原文地址:http://www.cnblogs.com/ranranblog/p/5632492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!