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. 一个完整的 JS 身份证校验代码

    一个完整的 JS 身份证校验代码 身份证号码是由 18 位数字组成的,它们分别表示: (1) 前 1.2 位数字表示: 所在省份的代码; (2) 第 3.4 位数字表示: 所在城市的代码; (3) 第 ...

  2. NOIP2013 D1 T2火柴排队

    题目描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为: ∑(ai-bi)^2 其中 ai 表示 ...

  3. Angular部署到windows上

    1. 确保已经打开了IIS服务. 如果没有打开可参考 http://jingyan.baidu.com/article/eb9f7b6d9e73d1869364e8d8.html 2. 编译angul ...

  4. 二进制拆位(贪心)【p2114】[NOI2014]起床困难综合症

    Description 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了 ...

  5. 【BZOJ 2216】【POI 2011】Lightning Conductor

    http://www.lydsy.com/JudgeOnline/problem.php?id=2216 学习了一下决策单调性. 这道题决策单调性比较明显,不详细证了. 对于一个决策i,如果在i之前的 ...

  6. Week Two

    2018.12.3: 1.[BZOJ 4819] 2.[BZOJ 4827] 3.[P1919] 4.[FFT模板] 2018.12.4: 1.[NTT] 2.[MTT(CRT)] 3.[MTT(my ...

  7. PHP配置文件经典漏洞

    phithon师父在小蜜圈里放了一个经典的配置文件写入问题漏洞. <?phpif(!isset($_GET['option'])) die();$str = addslashes($_GET[' ...

  8. bzoj 3573: [Hnoi2014]米特运输

    3573: [Hnoi2014]米特运输 Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题.    D星 ...

  9. 简单DP+暴力 POJ 1050

    To the Max Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 45915   Accepted: 24282 Desc ...

  10. bzoj4034 树上操作

    Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中 ...