阅读量:0
在C++中,std::map
是一个关联容器,它存储的元素是键值对,其中键不能重复
- 使用范围for循环遍历原始map并插入到新map中:
#include<iostream> #include <map> int main() { std::map<int, std::string> original_map = {{1, "one"}, {2, "two"}, {3, "three"}}; std::map<int, std::string> copied_map; for (const auto& pair : original_map) { copied_map.insert(pair); } // 输出拷贝后的map for (const auto& pair : copied_map) { std::cout<< pair.first << ": "<< pair.second<< std::endl; } return 0; }
- 使用
std::copy
函数和插入迭代器:
#include<iostream> #include <map> #include<algorithm> int main() { std::map<int, std::string> original_map = {{1, "one"}, {2, "two"}, {3, "three"}}; std::map<int, std::string> copied_map; std::copy(original_map.begin(), original_map.end(), std::inserter(copied_map, copied_map.end())); // 输出拷贝后的map for (const auto& pair : copied_map) { std::cout<< pair.first << ": "<< pair.second<< std::endl; } return 0; }
- 使用C++11的拷贝构造函数:
#include<iostream> #include <map> int main() { std::map<int, std::string> original_map = {{1, "one"}, {2, "two"}, {3, "three"}}; std::map<int, std::string> copied_map(original_map); // 输出拷贝后的map for (const auto& pair : copied_map) { std::cout<< pair.first << ": "<< pair.second<< std::endl; } return 0; }
- 使用C++11的赋值操作符:
#include<iostream> #include <map> int main() { std::map<int, std::string> original_map = {{1, "one"}, {2, "two"}, {3, "three"}}; std::map<int, std::string> copied_map; copied_map = original_map; // 输出拷贝后的map for (const auto& pair : copied_map) { std::cout<< pair.first << ": "<< pair.second<< std::endl; } return 0; }
以上就是在C++中实现std::map
拷贝的几种方法。