1、map

代码如下:

/*
* map_1.cpp
*
* Created on: 2013年8月6日
* Author: Administrator
*/ #include <iostream>
#include <map> using namespace std; template <typename T>
void print(T b , T e,char c = ' '){
while(b!= e){
cout<< *b++<<c;
}
cout<<endl;
} template<typename K , typename V>
ostream& operator<<(ostream& o , const pair<K,V>& p){
return o << p.first << ':' << p.second;
} int main(){
map<int,string> mis;
mis.insert(map<int,string>::value_type(5,"刘诗诗"));
mis.insert(pair<int,string>(8,"刘亦菲"));
mis.insert(make_pair(4,"章泽天"));
mis[3] = "allen";
mis[6] = "黄东东";
mis.insert(make_pair(5,"刘诗诗"));
mis.insert(make_pair(5,"zzt"));
print(mis.begin(),mis.end());
}

结果如下:

3:allen 4:章泽天 5:刘诗诗 6:黄东东 8:刘亦菲

2、multimap

代码如下:

/*
* multimap_1.cpp
*
* Created on: 2013年8月6日
* Author: Administrator
*/ #include <iostream>
#include <map>
#include <string> using namespace std; template<typename T>
void print(T b, T e, char c = ' ') {
while (b != e) {
cout << *b++ << c;
}
cout << endl;
} template <typename K ,typename V>
ostream& operator<<(ostream& o , const pair<K,V> p){
return o<<p.first <<' : '<<p.second;
} int main() {
typedef multimap<string, double> MSD;
MSD m;
m.insert(MSD::value_type("章泽天", 40000.0));
m.insert(MSD::value_type("章泽天", 41000.0));
m.insert(MSD::value_type("章泽天", 42000.0));
m.insert(MSD::value_type("章泽天", 43000.0)); m.insert(make_pair("刘诗诗", 30000.0));
m.insert(make_pair("刘诗诗", 35000.0));
m.insert(make_pair("刘诗诗", 39000.0)); m.insert(make_pair("刘亦菲", 50000.0));
m.insert(make_pair("刘亦菲", 55000.0));
m.insert(make_pair("刘亦菲", 40000.0)); print(m.begin(),m.end()); MSD::iterator ib = m.begin(),ie;
MSD cnt;
while(ib != m.end()){
string name = ib->first;
ie = m.upper_bound(name);
double sum = 0.0;
while(ib != ie ){
sum += ib++->second;
cnt.insert(make_pair(name,sum*0.03));
}
} print(cnt.begin(),cnt.end()); }

3、set

测试数据为:

1@qq.com
1@qq.com
1@qq.com
1@qq.com
1@qq.com
2@qq.com
2@qq.com
2@qq.com
3@qq.com
3@qq.com

结果为:

1@qq.com
2@qq.com
3@qq.com

4、mutilset

代码如下:

/*
* mutilset_1.cpp
*
* Created on: 2013年8月6日
* Author: Administrator
*/ #include <iostream>
#include <set>
#include <fstream> using namespace std; template<typename T>
void print(T b , T e, char c = ' '){
while(b!=e){
cout<< *b++<<c;
}
cout<<endl;
} int main(){
multiset<string> ss;
string s; ifstream fin("test"); if(!fin){
return 1;
} while(fin >> s){
ss.insert(s);
} print(ss.begin(),ss.end(),'\n'); }

结果如下:

1@qq.com
1@qq.com
1@qq.com
1@qq.com
1@qq.com
2@qq.com
2@qq.com
2@qq.com
3@qq.com
3@qq.com

STL中关联式容器的特性的更多相关文章

  1. STL中序列式容器的共性

    代码如下: /* * vector_1.cpp * * Created on: 2013年8月6日 * Author: Administrator */ #include <iostream&g ...

  2. STL源码分析读书笔记--第5章--关联式容器

    1.关联式容器的概念 上一篇文章讲序列式容器,序列式容器的概念与关联式容器相对,不提供按序索引.它分为set和map两大类,这两大类各自有各自的衍生体multiset和multimap,的底层机制都是 ...

  3. stl中顺序性容器,关联容器两者粗略解释

    什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...

  4. STL——关联式容器

    一.关联式容器 标准的STL关联式容器分为set(集合)/map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和 multimap(多键映射表).这些容器的底层机制均以RB-tre ...

  5. STL学习笔记--关联式容器

    关联式容器依据特定的排序准则,自动为其元素排序.缺省情况下以operator<进行比较.set multiset map multimap是一种非线性的树结构,具体的说是采用一种比较高效的特殊平 ...

  6. 关联式容器(associative containers)

    关联式容器(associative containers) 根据数据在容器中的排列特性,容器可分为序列式(sequence)和关联式(associative)两种. 标准的STL关联式容器分为set( ...

  7. C++ 容器:顺序性容器、关联式容器和容器适配器

    什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...

  8. STL中的set容器的一点总结

    1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...

  9. 【转】 STL中的set容器的一点总结

    1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...

随机推荐

  1. Three.js基础探寻七——Lamber材质与Phong材质

    材质(Material)是独立于物体顶点信息之外的与渲染效果相关的属性.通过设置材质可以改变物体的颜色.纹理贴图.光照模式等. 本篇将介绍基本材质以及两种基于光照模型的材质(Lamber与Phong) ...

  2. 第三方登陆微博、qq、微信

    源文:http://blog.csdn.net/tivonalh/article/details/60954373 假设是已经申请完成各平台开发者账号. 先来简单的,微博和QQ 微博: 引入微博JS ...

  3. 易普优APS(高级计划排程)演绎饭局模型(通俗的告诉您ERP计划与APS计划的区别)

    一天中午,老张突然回到家里对妻子说:“亲爱的老婆,晚上几个同事要来家里吃饭.这次我专门回家来要用最先进的ERP理念来完成咱家的请客过程了,要把这次宴会搞成一次ERP家宴.你看,我已经用CRM客户关系管 ...

  4. perl相关知识

    转:http://www.runoob.com/perl/perl-cgi-programming.html Perl 是 Practical Extraction and Report Langua ...

  5. LaTex 小技巧

    首行缩进 参考:小技巧之--首行缩进 %-------------------------------------------------------------------------------- ...

  6. jQuery.Validate.js验证大表单的优化

    最近在项目中有遇到一个Form表单中有200多个标签.在提交表单时网页会出现等待时间很长,甚至会出现网页奔溃的情况. 主要的原因是因为在使用jQuery.Validate.js进行Form验证的时候会 ...

  7. 我对于react-router路由原理的学习

    目录 react-router依赖基础--history react-router是如何实现URL与UI同步 一 react-router依赖基础--history history是一个独立的第三方j ...

  8. MAC OS 10.11.1虚拟机免费下载已安装Xcode7图片后有下载地址

    MAC OS 10.11.1虚拟机免费下载已安装Xcode7图片后有下载地址 注意:已经下载过MAC OS 10.10.5虚拟机免费下载(可安装Xcode7)链接:http://www.cnblogs ...

  9. 正则表达式 \ 和 原生字符串 r

    使用python写字符串常量时,raw string是个很好用的东东,比如在C里我要写一个Windows下的路径,得这么写: char *path = "C:\\mydir\\myfile. ...

  10. 数据离散化 ( 以及 stl 中的 unique( ) 的用法 )+ bzoj3289:Mato的文件管理

    http://blog.csdn.net/gokou_ruri/article/details/7723378 ↑惯例Mark大神的博客   bzoj3289:Mato的文件管理 线段树求逆序对+莫队 ...