get_next中访问it->first会coredump,求助。
#include <stdio.h>
#include <iostream>
#include <unordered_map>
using namespace std;
void get_first(const unordered_map<int,int>& m,void** iter) {
auto it = m.begin();
*iter = (void*)⁢
}
void get_item(void* ptr, int &a,int &b) {
unordered_map<int,int>::iterator it = *(unordered_map<int,int>::iterator*)ptr;
a = it->first;
b = it->second;
}
void get_next(void* ptr) {
unordered_map<int,int>::iterator it = *(unordered_map<int,int>::iterator*)ptr;
++it;
printf("%d,%d\n",it->first,it->second);
}
int main(int argc, char** argv) {
unordered_map<int,int> m;
m.insert(make_pair(1,1));
m.insert(make_pair(2,2));
int a;
int b;
void* ptr;
get_first(m,&ptr);
get_item( ptr, a,b);
cout<<a<<" "<<b<<endl;
get_next(ptr);
return 0;
}
--
FROM 117.100.157.*