c++

map拷贝在C++中的实现方式有哪些

小樊
89
2024-09-04 19:23:15
栏目: 编程语言

在C++中,std::map是一个关联容器,它存储的元素是键值对,其中键不能重复

  1. 使用范围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;
}
  1. 使用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;
}
  1. 使用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;
}
  1. 使用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拷贝的几种方法。

0
看了该问题的人还看了