Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何访问C++;_C++_Set_Std Pair - Fatal编程技术网

C++ 如何访问C++;

C++ 如何访问C++;,c++,set,std-pair,C++,Set,Std Pair,我有一套。其形式为set stockSet 我想知道上面的集合是否有一个作为第一个元素的给定字符串的条目。 还要查找对的第二部分的值,即int给定对的第一个元素string 我知道如何使用map和单元素集来实现它。但是我不知道怎么做,需要语法方面的帮助。你不能理解,因为你不能这样做 集合中的元素是“完整”元素。仅仅因为您在其中看到一个std::pair,并且您认为该集合包含两个元素,这并不意味着它是。该集合包含一个std::pair,一个完整的单个元素 如果您在某处有另一个std::pair,您

我有一套。其形式为
set stockSet
我想知道上面的集合是否有一个作为第一个元素的给定字符串的条目。 还要查找对的第二部分的值,即
int
给定对的第一个元素
string


我知道如何使用map和单元素集来实现它。但是我不知道怎么做,需要语法方面的帮助。

你不能理解,因为你不能这样做

集合中的元素是“完整”元素。仅仅因为您在其中看到一个std::pair,并且您认为该集合包含两个元素,这并不意味着它是。该集合包含一个
std::pair
,一个完整的单个元素

如果您在某处有另一个
std::pair
,您可以搜索该集合以查看其中是否有等效的对。但是,如果你只有集合包含的对象的一半,你真的不能这样做

我在这里看到的唯一选择是:

  • 手动迭代集合,直到找到或没有找到要查找的内容

  • 如果有一个最小的
    int
    值,您可以使用
    lower_-bound()
    ,将
    std::pair
    int
    部分的最小值以及您要搜索的字符串一起传递,然后查看
    lower_-bound()
    挖掘的内容

  • 也许可以重新考虑一下,无论您使用的是什么目的,您都可以使用
    std::set
    。可能包含
    std::pair
    std::set
    并不是满足您需求的合适容器


好的,我想我最好使用地图。但我还需要另一个帮助。如果我创建了一个元素成对的集合,并希望它根据第一个值进行排序。我该怎么做?我的意思是如何指定排序必须基于第一个元素,因为默认情况下集合是排序的。@VasaviManasa-只需为集合定义一个自定义比较器。