如何访问C++中设置的一对元素

How to access elements of a pair set in C++

本文关键字:设置 元素 C++ 何访问 访问      更新时间:2023-10-16

我有一套。它的形式是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::pairstd::set并不是真正适合您要求的容器。