因此,我声明了一个将容纳一对整数的集合。
什么是temp
?这是否意味着temp
将指向pair<int,int>
?
set<pair<int, int>> myset;
pair<int, int> temp = *(myset.begin());
下面的代码与上面的代码有什么不同?我可以定义一下这些代码在做什么。pair<int, int>::iterator temp;
temp = *(myset.begin());
最佳答案
在此代码中:
set<pair<int, int>> myset;
pair<int, int> temp = *(myset.begin());
变量temp
是pair
,包含两个int
。myset.begin()
返回一个迭代器,指向set
名为pair
的myset
中的第一个元素。它被*
取消引用,值(pair
)被复制到temp
中。在此代码中:
pair<int, int>::iterator temp;
temp = *(myset.begin());
首先将变量temp
声明为pair<int, int>
的迭代器,然后代码尝试将pair<int, int>
的值复制到其中。这将无法编译。
关于c++ - 我们如何理解set <pair <int,int >>的迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64739491/