C++ 在c+;中,std::set.end()将返回什么+;?
当您参考时,您会发现: 将迭代器返回到 容器。该元素充当占位符;正在尝试访问它 导致未定义的行为 然后运行以下代码:C++ 在c+;中,std::set.end()将返回什么+;?,c++,stl,C++,Stl,当您参考时,您会发现: 将迭代器返回到 容器。该元素充当占位符;正在尝试访问它 导致未定义的行为 然后运行以下代码: std::set<int> s {1, 2, 3}; cout << *s.end() << endl; std::set s{1,2,3}; 库特 将从STD::SETION()中返回什么?完全在C++中? 它返回: 容器最后一个元素后面的元素的迭代器 请注意: 该元素充当占位符;试图访问它会导致未定义的行为 答案是:3,为什么 因为:
std::set<int> s {1, 2, 3};
cout << *s.end() << endl;
std::set s{1,2,3};
库特
<>将从STD::SETION()中返回什么?完全在C++中?
它返回:
容器最后一个元素后面的元素的迭代器
请注意:
该元素充当占位符;试图访问它会导致未定义的行为
答案是:3,为什么
因为:
试图访问它会导致未定义的行为
所以它可以做你的编译器想做的任何事情,返回3是一种你的编译器显然想做的任何事情
<>将从STD::SETION()中返回什么?完全在C++中?
它返回:
容器最后一个元素后面的元素的迭代器
请注意:
该元素充当占位符;试图访问它会导致未定义的行为
答案是:3,为什么
因为:
试图访问它会导致未定义的行为
因此,它可以做编译器想做的任何事情,返回3是一种编译器显然想做的任何事情。未定义的行为意味着任何事情都可能发生。包括三个。看起来“有效”的未定义行为是最阴险的一种。使用visualc++我得到以下错误:“映射/设置迭代器不可取消引用”:)我得到了,谢谢……未定义的行为意味着任何事情都可能发生。包括三个。看起来“有效”的未定义行为是最阴险的一种。使用visualc++我得到以下错误:“映射/设置迭代器不可解引用”:)我得到了,谢谢…@cong我的意思是,你确实已经拥有了大部分信息…@cong我的意思是,你已经掌握了大部分的信息。。。