GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • cpprefjp - C++日本語リファレンス
  • GitHub Project

This view

  • Original page
  • New address

GeezerVison is showing cpprefjp.github.io — std::unordered_map::find - cpprefjp C++日本語リファレンス

  1. リファレンス
  2. unordered_map
  3. unordered_map
  4. find

最終更新日時: 2026年09月19日 21時31分51秒 (JST)
rotarymars が更新

履歴 編集

function
<unordered_map>

std::unordered_map::find(C++11)

iterator find(const key_type& x);           // (1) C++11
constexpr iterator find(const key_type& x); // (1) C++26

const_iterator find(const key_type& x) const;           // (2) C++11
constexpr const_iterator find(const key_type& x) const; // (2) C++26

template <class K> iterator find(const K& k);           // (3) C++20
template <class K> constexpr iterator find(const K& k); // (3) C++26

template <class K> const_iterator find(const K& k) const;           // (4) C++20
template <class K> constexpr const_iterator find(const K& k) const; // (4) C++26

概要

コンテナ内で指定されたキーに合致する要素を検索し、見つかった場合はそれへのイテレータを返し、見つからなかった場合は end (コンテナの最後の要素の次)を指すイテレータを返す。

  • (1) : 非constな*thisオブジェクトに対する検索
  • (2) : constな*thisオブジェクトに対する検索
  • (3) : 非constな*thisオブジェクトに対する透過的な検索
  • (4) : constな*thisオブジェクトに対する透過的な検索

(3), (4)の透過的な検索は、Pred::is_transparentおよびHash::is_transparent型が定義される場合に有効になる機能であり、例としてunordered_map<string, int> m;に対してm.find("key");のようにstring型のキーを持つ連想コンテナの検索インタフェースに文字列リテラルを渡した際、stringの一時オブジェクトが作られないようにできる。詳細はstd::hashクラスのページを参照。

パラメータ

  • x : 検索するキー。key_type は unordered_map コンテナの中で Key の別名として定義される。ここで Key は 1 番目のテンプレートパラメータである。
  • k : 検索するキー。key_typeと透過的に比較可能な型K型のキーである。

テンプレートパラメータ制約

  • (3), (4) : Pred::is_transparent型およびHash::is_transparent型が定義されていること

戻り値

指定した値が見つかった場合はその要素へのイテレータ、そうでない場合は end へのイテレータ。

例外

投げない。

計算量

  • 平均: 定数時間
  • 最悪: size について線形時間

例

#include <iostream>
#include <unordered_map>

int main()
{
  std::unordered_map<int, char> um;

  um.insert(std::make_pair(1,'a'));

  std::cout << (um.find(1) != um.end()) << std::endl;
  std::cout << (um.find(2) != um.end()) << std::endl;

  return 0;
}

出力

1
0

バージョン

言語

  • C++11

処理系

  • Clang: 9.0.1 ✅
  • GCC: ??
  • Visual C++: 2012 ✅

関連項目

名前 説明
count 指定したキーにマッチする要素の数を返す

参照

  • P0919R3 Heterogeneous lookup for unordered containers
  • P3372R3 constexpr containers and adaptors
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.