什么将从cd :: set.end()完全在c ++中返回?

con*_*ong 0 c++ stl

当你引用cppreference时,你会发现:

返回容器的最后一个元素后面的元素的迭代器.该元素充当占位符; 尝试访问它会导致未定义的行为.

然后我运行以下代码:

std::set<int> s {1, 2, 3};
cout << *s.end() << endl;
Run Code Online (Sandbox Code Playgroud)

输出是:3,为什么?

use*_*751 6

什么将从cd :: set.end()完全在c ++中返回?

它返回:

容器的最后一个元素后面的元素的迭代器.

注意:

该元素充当占位符; 尝试访问它会导致未定义的行为.

 

输出是:3,为什么?

因为:

尝试访问它会导致未定义的行为.

所以它可以做你的编译器做的任何事情,返回3是一种任何东西,你的编译器显然感觉就像在做.