Eri*_*ika 2 c++ iterator vector
在我的设置上运行:
  vector<int> myvector;
  for (int i=1; i<=5; i++) myvector.insert(myvector.end(),i);
  vector<int>::iterator it;
  for ( it=myvector.begin() ; it < myvector.end()+2; it++ )
    cout << " " << *it;
产量:
1 2 3 4 5 0 0
我原本以为尝试取消引用超出范围的迭代器会导致段错误.但它似乎产生了向量中包含的类型的空或默认初始化对象.
这是明确定义的行为吗?这个属性来自迭代器还是来自向量?迭代器在某种意义上是否会捕获超出范围的异常,而是返回一个空对象?
我尝试在C++ 11参考中找到这个,但感觉它有点过头了.
| 归档时间: | 
 | 
| 查看次数: | 2806 次 | 
| 最近记录: |