📜  C++ STL-map.operator=()函数(1)

📅  最后修改于: 2023-12-03 15:29:50.305000             🧑  作者: Mango

C++ STL-map.operator=()函数

简介

STL中map容器提供了operator=()函数,它用于将一个map对象赋值给另一个map对象。

map& operator=(const map& other);
参数
  • other:要赋值的map对象。
返回值

该函数返回一个map的引用,即赋值后的map对象。

示例
#include <iostream>
#include <map>

int main() {
  std::map<int, std::string> map1 {{1, "one"}, {2, "two"}, {3, "three"}};
  std::map<int, std::string> map2;

  // 复制map1
  map2 = map1;

  // 输出map2
  for (const auto& [key, value] : map2) {
    std::cout << key << ": " << value << std::endl;
  }
  
  return 0;
}

输出:

1: one
2: two
3: three
注意事项
  • operator=()函数不需要检查容器自身赋值的情况(map1 = map1),因为这种情况不会发生任何操作。
  • operator=()函数会删除原有map对象中的所有元素,并从其他map对象中复制所有元素。如果两个map对象的元素类型不同,则会导致编译错误。
  • 如果使用自定义类型作为map的key,要确保它有正确的比较函数(例如通过运算符重载)。
  • 如果复制的map中有重复的key,会保留最后一个key所对应的value。