📜  C++ STL-multimap.operator<()(1)

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

C++ STL-multimap.operator<()

multimap 是一种关联容器,它有序存储一组键/值对。

operator<()multimap 中重载小于运算符的函数,它用于比较两个键的大小。

语法
bool operator<(const Key &k1, const Key &k2);
  • k1:第一个要比较的键。
  • k2:第二个要比较的键。
返回值
  • 如果 k1 在字典顺序上小于 k2,则返回 true
  • 否则,返回 false
注意事项
  1. 当使用 multimap 时,键必须支持小于运算符 operator<(),否则会编译错误。
  2. 如果具有相同键值的元素插入 multimap 中,则它们将按插入顺序存储在容器中。
示例
#include <iostream>
#include <map>

int main()
{
  std::multimap<int, char> mymap;

  mymap.insert(std::pair<int, char>(1, 'a'));
  mymap.insert(std::pair<int, char>(2, 'b'));
  mymap.insert(std::pair<int, char>(2, 'c'));

  for (auto it = mymap.begin(); it != mymap.end(); ++it)
  {
    std::cout << it->first << " => " << it->second << std::endl;
  }

  return 0;
}

输出:

1 => a
2 => b
2 => c

在示例中,我们使用 multimap 存储一些键值对。当 multimap 存储具有相同键值的两个元素时,它们会按照插入顺序依次出现在容器中。因此,上面的输出会显示两个键值为 2 的元素。

总结

multimap.operator<() 是用于比较 multimap 中两个键的函数。为了使用 multimap 存储键值对,键必须支持小于运算符 operator<()。它也是 multimap 存储具有相同键值的元素时,它们按插入顺序存储的原因之一。