访问C 集合中的对元素

Accessing pair elements in a set in C++

本文关键字:元素 集合 访问      更新时间:2023-10-16

我想访问该对的firstsecond元素,这些元素包含在C 中的集合中。我有以下代码:

#include <iostream>
#include <set>
using namespace std;
int main()
{
  set < pair<int, int> > pairTest;
  set < pair<int, int> >::iterator pairIt;
  for (int i=1; i<=10; ++i)
  {
    // inserting into the pair set
    pairTest.insert( {i, i*10} );
  }
  int m = pairTest.size();
  cout << "pairTest elements are: ";
  for (pairIt = pairTest.begin();pairIt!=pairTest.end();pairIt++)
  {
    // I have the problem in the following
    cout << *pairIt.first << " ";
  }
  return 0;
}

但是,显然这不是正确的方法,我一直在寻找stackoverflow和其他网站,但仍然找不到答案。我该如何解决这个问题?

那是因为您首先访问first成员,然后尝试将其放置(.优先于*(,而first成员不是指针,因此您不能解释它。您必须以相反的方式进行操作,并通过添加括号来给出明确的优先级:

(*pairIt).first

在C 中具有一个漂亮的"快捷操作员"(与上述代码完全相同(:

pairIt->first