【发布时间】:2021-02-20 15:43:32
【问题描述】:
所以我声明了一个包含一对整数的集合。
temp 是什么?这是否意味着temp 将指向pair<int,int>?
set<pair<int, int>> myset;
pair<int, int> temp = *(myset.begin());
下面的代码与上面的代码有何不同?我能否定义一下这些代码到底在做什么。
pair<int, int>::iterator temp;
temp = *(myset.begin());
【问题讨论】:
-
这两个代码sn-ps都编译了吗?
-
不同的是第二个代码sn -p 不会编译。
-
A
std::set<std::pair<int, int>>::iterator如果是有效的迭代器,则取消引用对std::pair<int, int>的引用,如果不是有效的迭代器(例如myset.end()),则具有未定义的行为。 -
我没有测试第二个代码是否符合。我想知道第二个代码与第一个代码有何不同。
-
测试第二个代码是否编译,你会知道它们有何不同。