Skip to content

Latest commit

 

History

History
95 lines (68 loc) · 2.59 KB

File metadata and controls

95 lines (68 loc) · 2.59 KB

operator!=

  • unordered_map[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp11[meta cpp]
namespace std {
  template <class Key, class T, class Hash, class Pred, class Alloc>
  bool operator!= (const unordered_multimap<Key,T,Hash,Pred,Alloc>& a,
                   const unordered_multimap<Key,T,Hash,Pred,Alloc>& b);
}

概要

unordered_multiset オブジェクトを非等値比較する。

要件

  • a.key_eq()b.key_eq() は同じふるまいをすること。
  • key_type の等値比較演算子(operator==)で等値と判定された 2 つのオブジェクトは、key_eq() でも等値と判定されること。

戻り値

以下と等価:

return !(a == b);
  • ==[link op_equal.md]

例外

投げない。

計算量

Eiai 番目の同値キーのグループの大きさ、n = a.size()であるとして、

  • 平均: O(Σ(Ei2))
  • 最悪: O(n2)

備考

  • 本関数は、コンテナ内の要素の比較に key_eq() で返されるキー比較用関数オブジェクトを使用しないことに注意。
  • 本関数は、標準コンテナの要件を満たさない。これは、標準コンテナの要件が iteratorstd::equal を用いて定義されているためである。しかし、本関数の戻り値は、!(a == b) という意味においては、標準コンテナと同様とも考えることができる。

#include <iostream>
#include <unordered_map>

int main()
{
  std::unordered_multimap<int,char> um1;
  um1.insert(std::make_pair(10,'a'));
  um1.insert(std::make_pair(20,'b'));
  um1.insert(std::make_pair(30,'c'));
  um1.insert(std::make_pair(30,'d'));


  std::unordered_multimap<int,char> um2;
  um2.insert(std::make_pair(30,'c'));
  um2.insert(std::make_pair(10,'a'));
  um2.insert(std::make_pair(30,'d'));
  um2.insert(std::make_pair(20,'b'));

  std::cout << (um1 != um2) << std::endl;

  um2.insert(std::make_pair(30,'e'));

  std::cout << (um1 != um2) << std::endl;

  return 0;
}
  • insert[link insert.md]

出力

0
1

処理系

参照