首页 > 试题广场 > 以下代码执行后,it 的数据为: std::list<
[单选题]
以下代码执行后,it 的数据为:
std::list<int> temp;
std::list<int>::iterator it = temp.begin();
it = --it;
  • 未知
  • temp.end()
  • 异常
  • NULL
先说结论  选c
_STL_VERIFY(_New_ptr != _Mycont->_Myhead, "cannot decrement begin list iterator");
"cannot decrement begin list iterator"这段代码是vs2017抛出的异常信息


发表于 2020-03-07 23:54:43 回复(3)
#include <iostream>
#include <list>

int main()
{
    std::list<int> a;
    std::list<int>::iterator it = a.begin();
    it = --it;
    std::cout << "abc" << std::endl;
}
使用代码测试,在Ubuntu上没有抛出异常!
发表于 2020-06-17 13:14:05 回复(0)
感觉答案有问题,不解引用的话不会出错
发表于 2020-02-06 15:41:12 回复(0)

为什么不选a呀?

迭代器不是可以看作指针吗?若前面一个地址正好放一个int类型的数据,不是正常的吗?

发表于 2019-11-20 07:50:15 回复(1)