如何访问C++中设置的一对元素
How to access elements of a pair set in C++
我有一套。它的形式是set<pair<string,int> > stockSet
我想找出上面的集合是否具有作为第一个元素的给定字符串的条目。还要找到对的第二部分的值,即int
给定该对的第一个元素,即string
。
我知道如何使用地图和单元素集来做到这一点。但是我无法弄清楚如何做到这一点,需要语法方面的帮助。
你无法弄清楚,因为你无法做到这一点。
集合中的元素是"完整"元素。仅仅因为你在那里看到一个std::p air,并且你认为这个集合包含两个元素,并不意味着它是。该集合包含一个std::pair
,一个完整的元素。
如果你有另一个std::pair
,你可以在某个地方搜索集合,看看那里是否有一个等价的对。但是如果你只有集合包含的对象的一半,你真的做不到。
我在这里看到的唯一选项是:
-
手动遍历集合,直到找到或找不到要查找的内容。
-
如果其中有您希望的最小
int
值,则可以使用lower_bound()
,传递一个包含int
部分的最小值的std::pair
,以及您要搜索的字符串,看看lower_bound()
挖掘了什么。 -
也许重新考虑您出于任何目的使用
std::set
的决定。也许包含std::pair
的std::set
并不是真正适合您要求的容器。
相关文章:
- 在QComboBox或QListWidget中设置所选元素的样式文本?
- 如果我在相应 char 数组的声明中为其提供额外的元素,是否会自动设置 NULL?
- 无法在构造函数中执行设置元素插入
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- 设置负元素特征稀疏向量C++
- 迭代时擦除设置元素///
- 为 unordered_map 中的元素设置默认构造函数(如果是 [] 运算符)
- 在C++中将指针数组的所有元素设置为 nullptr
- C++:如何将枚举元素设置为无限?
- 我们如何使用下面的集合构造函数构造设置元素
- 如何在遍历时添加要设置的元素?
- 如何通过STL设置迭代直到第二个元素
- 如何在类中初始化数组并为第一个元素设置值
- 如何将Bools中的一个元素设置为true
- 在编译时间检查模板参数类型是否设置或多键,并且容器的元素类型是算术的
- 如何将布尔矩阵的每个元素设置为false而不循环
- 如何在设置元素中重用向量?
- C++:查找并擦除设置元素
- 设置元素的get位置
- 从CHtmlView调用javascript或设置元素焦点