函数
<map>

std::relational operators (multimap)

(1)
template <class Key, class T, class Compare, class Alloc>  bool operator== ( const multimap<Key,T,Compare,Alloc>& lhs,                    const multimap<Key,T,Compare,Alloc>& rhs );
(2)
template <class Key, class T, class Compare, class Alloc>  bool operator!= ( const multimap<Key,T,Compare,Alloc>& lhs,                    const multimap<Key,T,Compare,Alloc>& rhs );
(3)
template <class Key, class T, class Compare, class Alloc>  bool operator<  ( const multimap<Key,T,Compare,Alloc>& lhs,                    const multimap<Key,T,Compare,Alloc>& rhs );
(4)
template <class Key, class T, class Compare, class Alloc>  bool operator<= ( const multimap<Key,T,Compare,Alloc>& lhs,                    const multimap<Key,T,Compare,Alloc>& rhs );
(5)
template <class Key, class T, class Compare, class Alloc>  bool operator>  ( const multimap<Key,T,Compare,Alloc>& lhs,                    const multimap<Key,T,Compare,Alloc>& rhs );
(6)
template <class Key, class T, class Compare, class Alloc>  bool operator>= ( const multimap<Key,T,Compare,Alloc>& lhs,                    const multimap<Key,T,Compare,Alloc>& rhs );
Relational operators for multimap
Performs the appropriate comparison operation between the multimap containers lhs and rhs.

The equality comparison (operator==) is performed by first comparing sizes, and if they match, the elements are compared sequentially using operator==, stopping at the first mismatch (as if using algorithm equal).

The less-than comparison (operator<) behaves as if using algorithm lexicographical_compare, which compares the elements sequentially using operator< in a reciprocal manner (i.e., checking both a<b and b<a) and stopping at the first occurrence.

The other operations also use the operators == and < internally to compare the elements, behaving as if the following equivalent operations were performed
operationequivalent operation
a!=b!(a==b)
a>bb<a
a<=b!(b<a)
a>=b!(a<b)

Notice that none of these operations take into consideration the internal comparison object of neither container, but compare the elements (of typevalue_type) directly.

value_typeis a pair type, and as such, by default, two elements will compare equal only if both their key and mapped value compare equal, and one compare lower than the other only if the first key is lower, or if the keys are equivalent and the mapped value is lower.

These operators are overloaded in header .

参数

lhs, rhs
multimap containers (to the left- and right-hand side of the operator, respectively), having both the same template parameters (, T, CompareAlloc).

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// multimap comparisons
#include <iostream>
#include <map>

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

  foo.insert (std::make_pair('a',100));
  foo.insert (std::make_pair('z',900));
  bar.insert (std::make_pair('b',250));
  bar.insert (std::make_pair('b',350));

  // foo ({{a,100},{z,900}}) vs bar ({b,250},{b,350}}):
  if (foo==bar) std::cout << "foo and bar are equal\n";
  if (foo!=bar) std::cout << "foo and bar are not equal\n";
  if (foo< bar) std::cout << "foo is less than bar\n";
  if (foo> bar) std::cout << "foo is greater than bar\n";
  if (foo<=bar) std::cout << "foo is less than or equal to bar\n";
  if (foo>=bar) std::cout << "foo is greater than or equal to bar\n";

  return 0;
}

输出
foo and bar are not equal
foo is less than bar
foo is less than or equal to bar


返回值

true如果条件成立,则为 true,并且false否则为 false。

复杂度

Up to linear in the size of lhs and rhs.
For (1) and (2), constant if the sizes of lhs and rhs differ, and up to linear in that size (equality comparisons) otherwise.
For the others, up to linear in the smaller size (each representing two comparisons with operator<).

迭代器有效性

没有变化。

数据竞争

Both containers, lhs and rhs, are accessed.
Up to all of their contained elements may be accessed.

异常安全

If the type of the elements supports the appropriate operation with no-throw guarantee, the function never throws exceptions (no-throw guarantee).
In any case, the function cannot modify its arguments.

另见