#include <map> void func(std::map<int,std::pair<const char*,int>> &T_map) { std::string hello("hello"); ; i< ; i++) { T_map.insert(std::make_pair(i,std::pair<))); //也可以换车hello.c_str() } } int main() { std::map<int,std::pair<const char *,int>> value; func(value); for(auto &x : value) { std::cout<<x.first<<" : "<<(void*)(x.second.first)<<" : "<<x.second.second<<"\n"; //输出保持的地址一样,说明并没有另外申请空间用来存储 } }
简单来说对于make_pair了解还不够深,对编译器优化问题也不够明白
make_pair对指针只是简单的对指针进行copy,并不对值也进行copy