map拷貝在C++中的實(shí)現(xiàn)方式有哪些

c++
小樊
83
2024-09-04 19:23:15

在C++中,std::map是一個(gè)關(guān)聯(lián)容器,它存儲(chǔ)的元素是鍵值對(duì),其中鍵不能重復(fù)

  1. 使用范圍for循環(huán)遍歷原始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函數(shù)和插入迭代器:
#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的拷貝構(gòu)造函數(shù):
#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++中實(shí)現(xiàn)std::map拷貝的幾種方法。

0