先上图
#include <vector> #include <iostream> using namespace std; #define item vector<int>::iterator item search(item beg, item end, int val) { for (; beg != end; beg++) if (*beg == val) return beg; return end; } int main() { vector<int> list = { 4, 3, 99, 10, 5, 7 }; item it = search(list.begin(),list.end(), 25); cout << *it << endl; it = search(list.begin(),list.end(), 10); cout << *it << endl; return 0; }
小弟查了一下,代码逻辑没有出错误,为什么会这样呢?
解决方案
20
函数返回了 end ,然后你对 end 解引用出错