自己做的一个测试,留着以后好参考 使用union 关联long long 和一个struct中的2个32位的int,传递map则使用long long,在取出的使用的时候则使用结构体正常使用,避免海量数据处理时map拷贝结构体降低效率 #include<iostream> #include<iterator> #include<string> #include<map> using namespace std; typedef union { long long key; struct{ int fd; int use_count; }FD; }AIO_FD; int main(void) { cout << sizeof(AIO_FD) << endl; map<string,long long> fd_map; AIO_FD temp_FD; temp_FD.FD.fd = 2; temp_FD.FD.use_count = 18; fd_map.insert(make_pair("aa",temp_FD.key)); map<string,long long>::iterator fd_iter = fd_map.find(string("aa")); AIO_FD get_FD; get_FD.key = fd_iter->second; cout << "fd:" << get_FD.FD.fd << "/tuse count:" << get_FD.FD.use_count << endl; return 0; }