STL之map实现(一)
来源:互联网 发布:powerdvd源码输出 编辑:程序博客网 时间:2024/05/21 04:02
map其实就是一个映射,想象你在使用新华字典的时候,输入一个单词,就能得到这个单词的意思,这样就形成了一个映射。
为了实现map,你需要有类和对象,虚函数,模板,pair类型基础
首先,介绍一下模板,看下面的函数(重复做同样事情的函数,只是类型不一样)
int sum(int a,int b)
{
return a+b;
}
float sum(float a,float b)
{
return a+b;
}
double sum(double a,double b)
{
return a+b;
}
函数体一样,只是类型不一样,为了方便这类函数,引入把类型当做形参。
template <typename T>
T sum(T a,T b)
{
return a+b;
}
这样,不论你使用任何类型都可以调用。
//模板调用
cout<<sum<int>(1,2)<<endl;
cout<<sum<double(1.0,2.1)<<endl;
cout<<sum<string>("魔域",“最好”)<<endl;
使用模板,能方便你少写很多代码,好了 ,模板暂时介绍到这里,如果要深入学习模板,你也可以看看我写的关于模板的文章。
其次,介绍一下pair类型
template <typename type1,typename type2>
struct pair
{
Type1 first;
Type2 secod;
}
如果一个函数要返回两种不同的类型,比如返回一个int类型,再返回一个double类型,为了返回两种不同的类型,可以声明一个结构体。
struct student
{
int sum;
char * name;
char sex;
};
简单的说,就是把不同的类型打包在一起,形成一个结构体。
/**
first: 键:key
second :值:value
*/
为了说明键和值的关系,一个皇帝,后宫佳丽三千,皇帝就算key,后宫佳丽就是value.
map---映射:一个x只能对应一个y.,一个x键值只有一个。
看下面的例子:
map<int,string> myMap;
myMap[0]="休闲无心";
myMap[1]=''大好河山";
myMap[2]="木青子";
myMap[3]="红颜祸水";
map<int,string>::iterator Map_iter;
for(Map_iter=myMap.begin();Map_iter!=myMap.end();Map_iter++)
{
cout<<"key:"<<Map_iter.first<<"map:"<<Map_iter.secod<<endl;
}
map有个自动排序,按照键值从小到大排序.接下来自己来实现map。
0 0
- STL之map实现(一)
- STL之map实现
- STL之map实现
- STL之map实现(二)
- STL之map实现(三)
- STL之map实现(四)
- STL之map实现(五)
- 【STL】STL之map
- 《STL系列》之map原理及实现
- STL学习(一)map容器学习
- STL map的使用(一)
- STL 应用一(MAP)
- 【STL】STL容器之map
- STL之map&multimap容器(笔记)
- STL学习之map容器(1)
- STL学习之map容器(0)
- STL学习之map容器(3)
- STL之map函数用法(九阴真经)
- BeautifulSoup的高级应用 之 find findAll
- 搬家了,以后 在 www.JiFei.co 上写文章了。。。
- LeetCode 465. Optimal Account Balancing
- Leetcode 131. Palindrome Partitioning (Medium) (cpp)
- Volley 解析
- STL之map实现(一)
- STL之map实现(二)
- Sqoop 各大命令解释
- 前段时间做项目中遇到问题的随笔分享
- 狼人入门简单正向思维分析第一夜怎么不鱼的度过
- STL之map实现(三)
- [leetcode 26]Remove Duplicates from Sorted Array——移除排序数组中重复元素
- STL之map实现(四)
- entity.GetAttributeValue<T>(attributeName)的使用总结