【发布时间】:2016-11-14 03:08:01
【问题描述】:
我正在尝试在引用中返回一个迭代器
void class::foo(vector<bar>::iterator& iterBar)
{
vector<bar> copy = GetVecBar();
iterBar = min_element(copy.begin(), copy.end(), [](const bar& a, const bar& b) { return a.GetInt() < b.GetInt(); });
}
这可行,但是当它返回 main 时,迭代器会指向随机的东西。
主要:
vector<bar>::iterator iterBar;
Object.foo(false, iterBar);
感谢您的帮助
【问题讨论】:
-
iterBar只是悬空;它指向容器copy中的元素,该元素在退出函数foo时已被销毁。
标签: c++ algorithm vector iterator