STL源码分析
来源:互联网 发布:say it again frances 编辑:程序博客网 时间:2024/05/16 05:23
map的特性是:
所有元素都会根据元素的键值自动被排序,map的所有元素都是pair,同时拥有实值和键值。pair的第一元素被视为键值,第二元素被视为实值。map不允许两个元素拥有相同的键值。
template<class T1,class T2>struct pair{ typedef T1 first_type; typedef T2 scond_type; T1 forst; T2 second; pair() :first(T1()), second(T2()){} pair(const T1& a, const T2& b) :first(a), second(b){}};
测试程序
#include<map>#include<iostream>#include<string>using namespace std;int main(){ map<string, int> simap; simap[string("jjhou")] = 1; simap[string("jerry")] = 2; simap[string("jason")] = 3; simap[string("jimmy")] = 4; pair<string, int> value(string("david"), 5); simap.insert(value); map<string, int>::iterator simap_iter = simap.begin(); for (; simap_iter != simap.end(); ++simap_iter) { cout << simap_iter->first << ' ' << simap_iter->second << endl; } int number = simap[string("jjhou")]; cout << number << endl; map<string, int>::iterator ite1; //面对关联式容器,应该使用其所提供的find函数;爱搜寻元素,回避使用STL算法find()更有效率, ite1 = simap.find(string("mchen")); if (ite1 == simap.end()) cout << "mchen not found" << endl; ite1 = simap.find(string("jerry")); if (ite1 != simap.end()) cout << "jerry found" << endl; ite1->second = 9;//可以通过map迭代器修改“value” int number2 = simap[string("jerry")]; cout << number2 << endl; return 0;}
阅读全文
0 0
- stl源码分析请教
- [STL]源码分析:allocator
- STL hashtable 源码分析
- STL源码分析--list
- STL源码分析--deque
- STL源码分析--算法
- STL源码分析 # vector #
- STL 源码分析 # stl_number #
- STL 源码分析 # stl_pair #
- C++ STL 源码分析
- STL源码分析(总结)
- STL源码分析set
- STL源码分析
- STL vector源码分析
- STL源码分析之感想
- STL源码分析之Vector
- STL 中sort源码分析
- 阅读《STL源码分析》有感
- Python|计蒜客——两数之和
- LeetCode: -Dynamic Programming-Strange Printer[664]
- 程序设计语言
- 用GridView加载网络图片(上)
- 看了一定会收藏的海量数据实时在线分析Quick BI
- STL源码分析
- Java设计模式学习笔记 2
- CodeForces
- 操作系统Unix、Windows、Mac OS、Linux的故事
- 【PAT】【Advanced Level】1088. Rational Arithmetic (20)
- phper成长之路
- spring-cloud教程:Spring Cloud还是Dubbo?
- 日常笔记之-初学secureCRT
- File类初解