当您引用cppreference时,您会发现:
返回元素的最后一个元素后面的元素的迭代器 容器。该元素充当占位符;试图访问它 导致未定义的行为。
然后我运行以下代码:
std::set<int> s {1, 2, 3};
cout << *s.end() << endl;
输出结果是: 3 ,为什么?
答案 0 :(得分:6)
std :: set.end()将在c ++中完全返回什么?
它返回:
容器最后一个元素后面元素的迭代器。
请注意:
此元素充当占位符;尝试访问它会导致未定义的行为。
输出是:3,为什么?
由于:
尝试访问它会导致未定义的行为。
所以它可以做你的编译器做的任何事情,返回3是一种任何东西,你的编译器显然觉得这样做。