thanks for JoaquÃn M López Muñoz 's reply.
i have tried your code, it works as i need exactly.
for(auto it=data.get<1>().begin(),it_end=data.get<1>().end();
it!=it_end;
it=data.get<1>().upper_bound(it->m2)){
std::cout<<it->m2<<"\n"; // or whatever you need to do with the key
}
i'll use this method in reality, thanks!
Bill