访问C 集合中的对元素
Accessing pair elements in a set in C++
我想访问该对的first
和second
元素,这些元素包含在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
相关文章:
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- c++找不到具有相同哈希的无序集合元素
- 从C++无序集合中高效提取元素
- 如何在比较时更改集合元素的值(在 c++ 中)?
- 打印无序映射的第二个元素,即集合
- 在集合中查找使用结构C++的元素
- 如何在集合中迭代替代元素(或进行特定大小的飞跃)?
- 消除集合的第一个元素
- 将集合的随机元素添加到列表中,然后将其从原始集合中移除
- 将字符串集合中的元素添加到字符串集合的向量中
- 如何从一个无序集合中获取一个元素
- 如何在一对集合的向量中插入元素?vector<pair<int,set<string>>>
- C++ 如何以特定模式遍历矢量的不同集合元素
- 生成所有可能的元素选择,每个元素都来自不同的集合
- 我们如何使用下面的集合构造函数构造设置元素
- 我可以在一行代码中将向量中与条件匹配的所有元素插入到集合中吗?
- 是否可以在C STL中获得集合的单个元素
- 如何替换集合中的元素
- 使用常量键从集合中擦除元素
- 访问双元素集合中的另一个元素的简洁语法是什么?