概述
知识
map数组遍历下标从1开始
其实map就差不多相当于一个可以开很大的桶。
map的特点:
1、存储Key-value对
2、支持快速查找,查找的复杂度基本是Log(N)
3、快速插入,快速删除,快速修改
multimap特性以及用法与map完全相同,唯一的差别在于允许重复键值的元素插入容器.
例题
【51nod】和为k的连续区间
分析
map存储前缀和是s的数的下标。
每次判断有没有前缀和是sum-k的。
上代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
map<long long,int> a;
pair<int,int> ans;
int n,k,x;
long long sum;
int main()
{
cin>>n>>k;
ans.first=n+1;
a[0]=1;
for(int i=1;i<=n;i++)
{
cin>>x;
sum+=x;
if(!a[sum])
{
a[sum]=i+1;
}
if(a[sum-k]&&a[sum-k]<ans.first)
{
ans.first=a[sum-k];
ans.second=i;
}
}
if(ans.first>n) cout<<"No Solution";
else cout<<ans.first<<' '<<ans.second;
return 0;
}
最后
以上就是独特飞机为你收集整理的STL---map知识例题的全部内容,希望文章能够帮你解决STL---map知识例题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复