c ++-如果用作map中的键,如何获取对的第一个和第二个元素?

胆汁

当我使用对作为map中的键时,我试图获取对的第一个和第二个元素。为了更好的说明,请参见下面的代码。这就是我尝试过的

#include <bits/stdc++.h>
using namespace std;

int main() 
{
// your code goes here
map<pair<int,int>,int>mp;
int n;
cin>>n;
int a[n];
for(int i=0;i<n;++i)cin>>a[i];
int y=0;
for(int i=0;i<n;++i)
{
    mp.insert(make_pair(y,a[i]));
    y=a[i]+1;
}
int m;
cin>>m;
int q[m];
for(int i=0;i<m;++i)cin>>q[i];
for(int i=0;i<m;i++)
{
    int temp=q[i];
    for(map<pair<int,int>,int>::iterator it=mp.begin();it!=mp.end();++it)
    {
        if(((it->first)<=temp)&&((it->second)>=temp))
        cout<<mp->second<<endl;
    }

  }
  return 0;
}

我想在这里获取密钥的第一和第二个要素。我该怎么做?

科里·克莱默

当您遍历时map,可以获得以下项目

std::pair<int, int> key = it->first;
int value = it->second;

因此,firstsecondkey

it->first.first;
it->first.second;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当第二个元素是X时,C ++ Map获得第一个元素

C语言中的第一个和第二个调用

如何从第二个结构访问第一个结构-C

如何按第一个和第二个索引对 C++ 中的二维向量进行排序?

在C ++中,如何仅在第一个“ system()”结束后才执行第二个“ system()”?

如何在 C# 中组合两个项目(从 1ts 项目打开第二个项目和从第二个项目打开第一个项目)

c++ - 如何在c ++中打印具有第一个和第二个2类的对向量?

语言c char *从第二个元素而不是第一个元素开始

在c#中使用固定的第一个元素和第二个变量元素拆分字符串

c ++ 11获取第一个(第二个,等等)参数的类型,类似于result_of

拆分字符串,并连接所有第一个元素,然后连接第二个元素,依此类推,在c#中

在C中按对的第一个元素然后按对的第二个元素对对的向量进行排序

C第一个fgets()在第二个运行时被跳过

如果第一个组合框值是在C#中安排的,则启用第二个组合框

目标 C - 如何在触摸第一个 SKnode 时禁用第二个 Sknode 的触摸

c# 和 sqlserver 如何从第二个表中获取数据(如果存在)

通过第一个对象在 C++ 中创建第二个对象时,第一个对象去哪里了?

在C ++中访问映射中的一对的第一个和第二个时出现编译器错误

在 C# 中关闭第一个表单以显示第二个,但在关闭第二个后第一个又回来了

如何在C#中从第二个嵌套的foreach循环中打破第一个foreach循环

如何在C#中从第一个表对第二个表进行数据排序

以历史方式比较 2 个列表之间的值,如果元素来自第一个列表则递增值,如果元素来自第二个列表则递减 - C#

目标c如何根据选择第一个文本字段项目删除第二个和第三个文本字段中的项目

c# - 通过冒号拆分文本框中的字符串并获取第一个字符串和第二个字符串

C#合并两个for循环,第二个循环是第一个倒置

在第二个条目C#中使用第一个条目的ID

C#第二个DateTime.ParseExact检查第一个是否失败

表中的第一个单元格始终为空。仅在第二个单元格中显示-目标c

使用C#/ XAML,如何根据第一个组合框的选定项更新第二个组合框的ItemsSourceList?