У меня есть следующий пример:возвращение итератора из функции
#include <stdio.h>
#include <map>
#include <conio.h>
typedef std::map<int,int> mi;
typedef std::map<int,int>::iterator mit;
mit myfind(mi mymap)
{
mit it = mymap.find(1);
printf("in function: %d\n",it->second);
return it;
}
void main()
{
mi a;
a.insert(std::pair<int,int>(1,2));
a.insert(std::pair<int,int>(3,4));
mit it = myfind(a);
printf("out of function: %d\n",it->second);
_getch();
}
Выход:
в функции: 2
из функции: -17891602
Почему? Недействителен ли итератор? Зачем? Заранее спасибо.
спасибо. кто это сделал. – user581243
@user: Вы можете прочитать [Как передать объекты в функции на C++?] (Http://stackoverflow.com/questions/2139224/how-to-pass-objects-to-functions-in-c/ 2139254 # 2139254). – sbi