diff --git a/reference/debugging/breakpoint.html b/reference/debugging/breakpoint.html index 9772edfa17c..05bdd6ab012 100644 --- a/reference/debugging/breakpoint.html +++ b/reference/debugging/breakpoint.html @@ -191,8 +191,8 @@

最終更新日時:

breakpoint_if_debugging()を使用する

例

#include <print>
diff --git a/reference/debugging/breakpoint_if_debugging.html b/reference/debugging/breakpoint_if_debugging.html
index 33fc2bad03d..5fc3afffe88 100644
--- a/reference/debugging/breakpoint_if_debugging.html
+++ b/reference/debugging/breakpoint_if_debugging.html
@@ -191,8 +191,8 @@
     

最終更新日時:

#include <print>
diff --git a/reference/debugging/is_debugger_present.html b/reference/debugging/is_debugger_present.html
index 9f79d518da7..64e207e6f71 100644
--- a/reference/debugging/is_debugger_present.html
+++ b/reference/debugging/is_debugger_present.html
@@ -191,8 +191,8 @@
     

最終更新日時:

例外のキャッチの無効化 : 例外やシグナルの発生時点でデバッガに制御を渡す +
  • 診断のための追加の出力、デバッグ用UIの表示、自動保存の無効化
  • + +
  • 実装は、プログラムがデバッガによって監視されているかどうかを判定するために、必要に応じて即時クエリを実行する
  • Windowsまたは同等のシステムでは、この関数の動作はWin32関数の::IsDebuggerPresent()を呼び出すことで実現できる
  • POSIX環境では、監視親プロセスをチェックすることで実現できる。その際、監視親プロセスがデバッガであるかどうかは最善の努力で判定する
  • diff --git a/reference/map/multimap/count.html b/reference/map/multimap/count.html index f2713820c58..d6fa7b840ce 100644 --- a/reference/map/multimap/count.html +++ b/reference/map/multimap/count.html @@ -203,8 +203,8 @@

    最終更新日時:

    計算量

    log(size()) + count(x)
     

    +

    備考

    +
      +
    • 要素の有無を調べるだけであれば、この関数ではなくcontains()メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して線形時間がかかるが、contains()は対数時間である
    • +

    例

    #include <iostream>
     #include <map>
    diff --git a/reference/map/multimap/erase.html b/reference/map/multimap/erase.html
    index a1629f5a578..63dbbdd0e8d 100644
    --- a/reference/map/multimap/erase.html
    +++ b/reference/map/multimap/erase.html
    @@ -203,8 +203,8 @@
         

    最終更新日時:

    備考

    • (1) : C++17で再追加されたこのオーバーロードは、それ以前の言語バージョンから使用できる可能性がある
    • (1), (2) : この関数に、範囲外のイテレータ (終端イテレータを含む) を指定した場合の動作は未定義
    • -
    • 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。
    • -

      ループ中で multimap の要素を削除するためには、C++98 までは以下のようなコードを書く必要があった。 +

      (3), (4) : 等価なキーをもつ要素が複数ある場合、そのすべてが削除される。1個だけ削除したい場合は、find()メンバ関数で得たイテレータを(1), (2)に渡す
      -

      while (it != map_object.end()) {
      +
      if (auto it = mm.find(x); it != mm.end()) {
      +  mm.erase(it);
      +}
      +
      +

      +
        +
      • キーを指定して削除する場合は等価なキーをもつ要素の個数に対して線形時間がかかるが、イテレータを指定して削除する場合は定数時間である
      • +
      • find()がend()を返した場合に、そのイテレータを渡すと動作は未定義となる
      • +
      • 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。
      • +
      • ループ中で multimap の要素を削除するためには、C++98 までは以下のようなコードを書く必要があった。
      • +
      +

      while (it != map_object.end()) {
         if (条件) {
           map_object.erase(it++);
         }
      diff --git a/reference/set/multiset/count.html b/reference/set/multiset/count.html
      index 812e8724d67..fce9239d4cc 100644
      --- a/reference/set/multiset/count.html
      +++ b/reference/set/multiset/count.html
      @@ -203,8 +203,8 @@
           

      最終更新日時:

      オーバーロード解決に参加する条件は、find()メンバ関数の備考欄を参照。

    • -
    • std::multisetクラスとの共通インタフェースを使用する必要がなければ、この関数の代わりにcontains()メンバ関数を使用することを推奨する
    • +
    • 要素の有無を調べるだけであれば、この関数ではなくcontains()メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して線形時間がかかるが、contains()は対数時間である

    例

    #include <iostream>
    diff --git a/reference/set/multiset/erase.html b/reference/set/multiset/erase.html
    index 19f02af7a49..5ec3d2cb5c5 100644
    --- a/reference/set/multiset/erase.html
    +++ b/reference/set/multiset/erase.html
    @@ -203,8 +203,8 @@
         

    最終更新日時:

    備考

    • (1) : C++17で再追加されたこのオーバーロードは、それ以前の言語バージョンから使用できる可能性がある
    • (1), (2) : この関数に、範囲外のイテレータ (終端イテレータを含む) を指定した場合の動作は未定義
    • -
    • 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。
    • -

      ループ中で multiset の要素を削除するためには、C++98 までは以下のようなコードを書く必要があった。 +

      (3), (4) : 等価なキーをもつ要素が複数ある場合、そのすべてが削除される。1個だけ削除したい場合は、find()メンバ関数で得たイテレータを(1), (2)に渡す
      -

      while (it != set_object.end()) {
      +
      if (auto it = ms.find(x); it != ms.end()) {
      +  ms.erase(it);
      +}
      +
      +

      +
        +
      • キーを指定して削除する場合は等価なキーをもつ要素の個数に対して線形時間がかかるが、イテレータを指定して削除する場合は定数時間である
      • +
      • find()がend()を返した場合に、そのイテレータを渡すと動作は未定義となる
      • +
      • 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。
      • +
      • ループ中で multiset の要素を削除するためには、C++98 までは以下のようなコードを書く必要があった。
      • +
      +

      while (it != set_object.end()) {
         if (条件) {
           set_object.erase(it++);
         }
      diff --git a/reference/unordered_map/unordered_map/erase.html b/reference/unordered_map/unordered_map/erase.html
      index 3a39651ada1..d29fed587de 100644
      --- a/reference/unordered_map/unordered_map/erase.html
      +++ b/reference/unordered_map/unordered_map/erase.html
      @@ -203,8 +203,8 @@
           

      最終更新日時:

      概要

      指定された要素を削除する

      +
        +
      • (1) : 指定されたイテレータが指す要素を削除する
      • +
      • (2) : 指定された読み取り専用イテレータが指す要素を削除する
      • +
      • (3) : 指定されたキーkと等価なキーをもつ要素を削除する
      • +
      • (4) : 指定されたイテレータ範囲[first, last)の要素をすべて削除する
      • +

      要件

      • position は、有効で、かつ、間接参照可能な(dereferenceable、つまり cend() ではない)当該コンテナを指す読み取り専用イテレータでなければならない。
      • diff --git a/reference/unordered_map/unordered_multimap/count.html b/reference/unordered_map/unordered_multimap/count.html index ce9b35ed217..9b0e627645c 100644 --- a/reference/unordered_map/unordered_multimap/count.html +++ b/reference/unordered_map/unordered_multimap/count.html @@ -203,12 +203,12 @@

        最終更新日時:
        が更新

        @@ -287,6 +287,10 @@

        size について線形時間

      +

      備考

      +
        +
      • 要素の有無を調べるだけであれば、この関数ではなくcontains()メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して平均的に比例するが、contains()は平均的に定数時間である
      • +

      例

      #include <iostream>
       #include <unordered_map>
      diff --git a/reference/unordered_map/unordered_multimap/erase.html b/reference/unordered_map/unordered_multimap/erase.html
      index 7268da4643c..88c68d3e06f 100644
      --- a/reference/unordered_map/unordered_multimap/erase.html
      +++ b/reference/unordered_map/unordered_multimap/erase.html
      @@ -203,8 +203,8 @@
           

      最終更新日時:

      概要

      指定された要素を削除する

      +
        +
      • (1) : 指定されたイテレータが指す要素を削除する
      • +
      • (2) : 指定された読み取り専用イテレータが指す要素を削除する
      • +
      • (3) : 指定されたキーkと等価なキーをもつ要素をすべて削除する
      • +
      • (4) : 指定されたイテレータ範囲[first, last)の要素をすべて削除する
      • +

      要件

      • position は、有効で、かつ、間接参照可能な(dereferenceable、つまり cend() ではない)当該コンテナを指す読み取り専用イテレータでなければならない。
      • @@ -302,8 +308,21 @@

        find()メンバ関数で得たイテレータを(1), (2)に渡す +
        +
        if (auto it = umm.find(x); it != umm.end()) {
        +  umm.erase(it);
        +}
        +
        +

        +
          +
        • キーを指定して削除する場合は等価なキーをもつ要素の個数に平均的に比例するが、イテレータを指定して削除する場合は平均的に定数時間である
        • +
        • find()がend()を返した場合に、そのイテレータを渡すと動作は未定義となる
        • 削除されなかった要素の相対順序は維持される。
        + +

      例

      基本的な使い方 (C++11)

      #include <iostream>
      diff --git a/reference/unordered_set/unordered_multiset/count.html b/reference/unordered_set/unordered_multiset/count.html
      index eceb676cb5d..594c0b00132 100644
      --- a/reference/unordered_set/unordered_multiset/count.html
      +++ b/reference/unordered_set/unordered_multiset/count.html
      @@ -203,8 +203,8 @@
           

      最終更新日時:

      size について線形時間

    +

    備考

    +
      +
    • 要素の有無を調べるだけであれば、この関数ではなくcontains()メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して平均的に比例するが、contains()は平均的に定数時間である
    • +

    例

    #include <iostream>
     #include <unordered_set>
    diff --git a/reference/unordered_set/unordered_multiset/erase.html b/reference/unordered_set/unordered_multiset/erase.html
    index 3aa852a1470..ac2c578e1e9 100644
    --- a/reference/unordered_set/unordered_multiset/erase.html
    +++ b/reference/unordered_set/unordered_multiset/erase.html
    @@ -203,8 +203,8 @@
         

    最終更新日時:

    概要

    指定された要素を削除する

    +
      +
    • (1) : 指定されたイテレータが指す要素を削除する
    • +
    • (2) : 指定された読み取り専用イテレータが指す要素を削除する
    • +
    • (3) : 指定されたキーkと等価なキーをもつ要素をすべて削除する
    • +
    • (4) : 指定されたイテレータ範囲[first, last)の要素をすべて削除する
    • +

    要件

    • position は、有効で、かつ、間接参照可能な(dereferenceable、つまり cend() ではない)当該コンテナを指す読み取り専用イテレータでなければならない。
    • @@ -302,8 +308,21 @@

      find()メンバ関数で得たイテレータを(1), (2)に渡す +
      +
      if (auto it = ums.find(x); it != ums.end()) {
      +  ums.erase(it);
      +}
      +
      +

      +
        +
      • キーを指定して削除する場合は等価なキーをもつ要素の個数に平均的に比例するが、イテレータを指定して削除する場合は平均的に定数時間である
      • +
      • find()がend()を返した場合に、そのイテレータを渡すと動作は未定義となる
      • 削除されなかった要素の相対順序は維持される。
      + +

    例

    基本的な使い方 (C++11)

    #include <iostream>
    diff --git a/reference/unordered_set/unordered_set/erase.html b/reference/unordered_set/unordered_set/erase.html
    index 46b0ce57f45..ca92e2eb77b 100644
    --- a/reference/unordered_set/unordered_set/erase.html
    +++ b/reference/unordered_set/unordered_set/erase.html
    @@ -203,8 +203,8 @@
         

    最終更新日時:

    概要

    指定された要素を削除する

    +
      +
    • (1) : 指定されたイテレータが指す要素を削除する
    • +
    • (2) : 指定された読み取り専用イテレータが指す要素を削除する
    • +
    • (3) : 指定されたキーkと等価なキーをもつ要素を削除する
    • +
    • (4) : 指定されたイテレータ範囲[first, last)の要素をすべて削除する
    • +

    要件

    • position は、有効で、かつ、間接参照可能な(dereferenceable、つまり cend() ではない)当該コンテナを指す読み取り専用イテレータでなければならない。
    • diff --git a/rss.xml b/rss.xml index 66891657170..8ca735748bc 100644 --- a/rss.xml +++ b/rss.xml @@ -2,10 +2,429 @@ cpprefjp - C++日本語リファレンス - 2026-10-08T20:03:30.285219 - 1fb9c0f8-c947-4bb4-8cf6-a21fa5f78ad9 + 2026-10-09T19:37:47.306390 + 119b3774-ad20-4f50-88b5-d17130bf11d5 + + breakpoint -- debugging : この機能が有用なケースを記載 + + 8a39622c09c236a7672e51e64b19c5816be3ab65:reference/debugging/breakpoint.md + 2026-10-09T14:24:38+09:00 + + <pre><code>diff --git a/reference/debugging/breakpoint.md b/reference/debugging/breakpoint.md +index 86159b7fd..700ec4b6d 100644 +--- a/reference/debugging/breakpoint.md ++++ b/reference/debugging/breakpoint.md +@@ -33,6 +33,7 @@ namespace std { + + ## 備考 + - 実装としては、生成されるコードがプラットフォームに対して可能な限り最小になるように最適化することが期待される。例として、x86ターゲット環境ではINT3命令をひとつだけ生成することが期待される ++- デバッガがプログラムを監視していない状況でこの関数が呼び出された場合、プログラムが異常終了する可能性がある。製品のコードに残す場合は、[`breakpoint_if_debugging()`](breakpoint_if_debugging.md)を使用する + + + ## 例 +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + breakpoint_if_debugging -- debugging : この機能が有用なケースを記載 + + 8a39622c09c236a7672e51e64b19c5816be3ab65:reference/debugging/breakpoint_if_debugging.md + 2026-10-09T14:24:38+09:00 + + <pre><code>diff --git a/reference/debugging/breakpoint_if_debugging.md b/reference/debugging/breakpoint_if_debugging.md +index 811aae940..b3c27f1f3 100644 +--- a/reference/debugging/breakpoint_if_debugging.md ++++ b/reference/debugging/breakpoint_if_debugging.md +@@ -34,6 +34,11 @@ if (is_debugger_present()) { + + ## 備考 + - 実装としては、生成されるコードがプラットフォームに対して可能な限り最小になるように最適化することが期待される。例として、x86ターゲット環境ではINT3命令をひとつだけ生成することが期待される ++- デバッガが提供する条件付きブレークポイント機能と比べて、以下の利点がある: ++ - 停止条件がプログラムの一部として評価されるため高速である。デバッガの条件付きブレークポイントは、その位置に到達するたびにプログラムを停止させてデバッガ側で条件式を評価するため、繰り返し回数の多いループでは実行速度が大きく低下する ++ - 停止位置がソースコードとともに管理される。行番号で指定するブレークポイントはコードの編集によってずれるが、この関数の呼び出しはコードの移動に追従し、リポジトリで共有できる。テンプレートやインライン関数、ラムダ式のように、デバッガから位置を指定しにくい箇所も指定できる ++ - デバッガごとの設定が不要である。デバッガごとに異なるスクリプトを用意せずに、同一のソースコードで同じ位置に停止できる ++ - デバッガをアタッチする前に実行される箇所でも停止できる。プロセス起動直後の処理や、子プロセスとして起動される処理など + + + ## 例 +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + is_debugger_present -- debugging : この機能が有用なケースを記載 + + 8a39622c09c236a7672e51e64b19c5816be3ab65:reference/debugging/is_debugger_present.md + 2026-10-09T14:24:38+09:00 + + <pre><code>diff --git a/reference/debugging/is_debugger_present.md b/reference/debugging/is_debugger_present.md +index 7444bc120..f9fd1cb2d 100644 +--- a/reference/debugging/is_debugger_present.md ++++ b/reference/debugging/is_debugger_present.md +@@ -38,6 +38,10 @@ namespace std { + + + ## 備考 ++- ブレークポイントの設置以外に、デバッガ実行中かどうかでプログラムの動作を切り替える用途がある: ++ - タイムアウトやウォッチドッグの無効化 : ブレークポイントで停止している間に、時間経過によって通信が切断されるような動作を防ぐ ++ - 自前のクラッシュハンドラや例外のキャッチの無効化 : 例外やシグナルの発生時点でデバッガに制御を渡す ++ - 診断のための追加の出力、デバッグ用UIの表示、自動保存の無効化 + - 実装は、プログラムがデバッガによって監視されているかどうかを判定するために、必要に応じて即時クエリを実行する + - Windowsまたは同等のシステムでは、この関数の動作はWin32関数の`::IsDebuggerPresent()`を呼び出すことで実現できる + - POSIX環境では、監視親プロセスをチェックすることで実現できる。その際、監視親プロセスがデバッガであるかどうかは最善の努力で判定する +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + count -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/map/multimap/count.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/map/multimap/count.md b/reference/map/multimap/count.md +index 8924853b5..5b963ffba 100644 +--- a/reference/map/multimap/count.md ++++ b/reference/map/multimap/count.md +@@ -33,6 +33,10 @@ log(size()) + count(x) + * size()[link size.md] + + ++## 備考 ++- 要素の有無を調べるだけであれば、この関数ではなく[`contains()`](contains.md)メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して線形時間がかかるが、[`contains()`](contains.md)は対数時間である ++ ++ + ## 例 + ```cpp example + #include &lt;iostream&gt; +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + erase -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/map/multimap/erase.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/map/multimap/erase.md b/reference/map/multimap/erase.md +index d05b777d3..8990d3710 100644 +--- a/reference/map/multimap/erase.md ++++ b/reference/map/multimap/erase.md +@@ -63,6 +63,15 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (5) C++2 + ## 備考 + - (1) : C++17で再追加されたこのオーバーロードは、それ以前の言語バージョンから使用できる可能性がある + - (1), (2) : この関数に、範囲外のイテレータ (終端イテレータを含む) を指定した場合の動作は未定義 ++- (3), (4) : 等価なキーをもつ要素が複数ある場合、そのすべてが削除される。1個だけ削除したい場合は、[`find()`](find.md)メンバ関数で得たイテレータを(1), (2)に渡す ++ ```cpp ++ if (auto it = mm.find(x); it != mm.end()) { ++ mm.erase(it); ++ } ++ ``` ++ ++ - キーを指定して削除する場合は等価なキーをもつ要素の個数に対して線形時間がかかるが、イテレータを指定して削除する場合は定数時間である ++ - [`find()`](find.md)が[`end()`](end.md)を返した場合に、そのイテレータを渡すと動作は未定義となる + - 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。 + - ループ中で `multimap` の要素を削除するためには、C++98 までは以下のようなコードを書く必要があった。 + ```cpp +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + count -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/set/multiset/count.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/set/multiset/count.md b/reference/set/multiset/count.md +index d31e70157..1424fa026 100644 +--- a/reference/set/multiset/count.md ++++ b/reference/set/multiset/count.md +@@ -35,7 +35,7 @@ log(size()) + count(x) + + ## 備考 + - (2) : この関数がオーバーロード解決に参加する条件は、[`find()`](find.md)メンバ関数の備考欄を参照。 +-- [`std::multiset`](/reference/set/multiset.md)クラスとの共通インタフェースを使用する必要がなければ、この関数の代わりに[`contains()`](contains.md)メンバ関数を使用することを推奨する ++- 要素の有無を調べるだけであれば、この関数ではなく[`contains()`](contains.md)メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して線形時間がかかるが、[`contains()`](contains.md)は対数時間である + + + ## 例 +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + erase -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/set/multiset/erase.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/set/multiset/erase.md b/reference/set/multiset/erase.md +index f209661a0..55ec5ffb4 100644 +--- a/reference/set/multiset/erase.md ++++ b/reference/set/multiset/erase.md +@@ -63,6 +63,15 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (5) C++2 + ## 備考 + - (1) : C++17で再追加されたこのオーバーロードは、それ以前の言語バージョンから使用できる可能性がある + - (1), (2) : この関数に、範囲外のイテレータ (終端イテレータを含む) を指定した場合の動作は未定義 ++- (3), (4) : 等価なキーをもつ要素が複数ある場合、そのすべてが削除される。1個だけ削除したい場合は、[`find()`](find.md)メンバ関数で得たイテレータを(1), (2)に渡す ++ ```cpp ++ if (auto it = ms.find(x); it != ms.end()) { ++ ms.erase(it); ++ } ++ ``` ++ ++ - キーを指定して削除する場合は等価なキーをもつ要素の個数に対して線形時間がかかるが、イテレータを指定して削除する場合は定数時間である ++ - [`find()`](find.md)が[`end()`](end.md)を返した場合に、そのイテレータを渡すと動作は未定義となる + - 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。 + - ループ中で `multiset` の要素を削除するためには、C++98 までは以下のようなコードを書く必要があった。 + ```cpp +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + erase -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/unordered_map/unordered_map/erase.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/unordered_map/unordered_map/erase.md b/reference/unordered_map/unordered_map/erase.md +index 93ea4526a..5097a6cc9 100644 +--- a/reference/unordered_map/unordered_map/erase.md ++++ b/reference/unordered_map/unordered_map/erase.md +@@ -22,6 +22,11 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (4) C++2 + ## 概要 + 指定された要素を削除する + ++- (1) : 指定されたイテレータが指す要素を削除する ++- (2) : 指定された読み取り専用イテレータが指す要素を削除する ++- (3) : 指定されたキー`k`と等価なキーをもつ要素を削除する ++- (4) : 指定されたイテレータ範囲`[first, last)`の要素をすべて削除する ++ + + ## 要件 + - `position` は、有効で、かつ、間接参照可能な(dereferenceable、つまり [`cend`](cend.md)`()` ではない)当該コンテナを指す読み取り専用イテレータでなければならない。 +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + count -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/unordered_map/unordered_multimap/count.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/unordered_map/unordered_multimap/count.md b/reference/unordered_map/unordered_multimap/count.md +index 8e65f7e8b..32be09556 100644 +--- a/reference/unordered_map/unordered_multimap/count.md ++++ b/reference/unordered_map/unordered_multimap/count.md +@@ -50,6 +50,10 @@ constexpr size_type count(const K&amp; k) const; // (2) C++26 + - 最悪: [`size`](size.md) について線形時間 + + ++## 備考 ++- 要素の有無を調べるだけであれば、この関数ではなく[`contains()`](contains.md)メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して平均的に比例するが、[`contains()`](contains.md)は平均的に定数時間である ++ ++ + ## 例 + ```cpp example + #include &lt;iostream&gt; +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + erase -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/unordered_map/unordered_multimap/erase.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/unordered_map/unordered_multimap/erase.md b/reference/unordered_map/unordered_multimap/erase.md +index 1844508be..da979aa01 100644 +--- a/reference/unordered_map/unordered_multimap/erase.md ++++ b/reference/unordered_map/unordered_multimap/erase.md +@@ -22,6 +22,11 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (4) C++2 + ## 概要 + 指定された要素を削除する + ++- (1) : 指定されたイテレータが指す要素を削除する ++- (2) : 指定された読み取り専用イテレータが指す要素を削除する ++- (3) : 指定されたキー`k`と等価なキーをもつ要素をすべて削除する ++- (4) : 指定されたイテレータ範囲`[first, last)`の要素をすべて削除する ++ + + ## 要件 + - `position` は、有効で、かつ、間接参照可能な(dereferenceable、つまり [`cend`](cend.md)`()` ではない)当該コンテナを指す読み取り専用イテレータでなければならない。 +@@ -58,6 +63,15 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (4) C++2 + + ## 備考 + - 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。 ++- (3) : 等価なキーをもつ要素が複数ある場合、そのすべてが削除される。1個だけ削除したい場合は、[`find()`](find.md)メンバ関数で得たイテレータを(1), (2)に渡す ++ ```cpp ++ if (auto it = umm.find(x); it != umm.end()) { ++ umm.erase(it); ++ } ++ ``` ++ ++ - キーを指定して削除する場合は等価なキーをもつ要素の個数に平均的に比例するが、イテレータを指定して削除する場合は平均的に定数時間である ++ - [`find()`](find.md)が[`end()`](end.md)を返した場合に、そのイテレータを渡すと動作は未定義となる + - 削除されなかった要素の相対順序は維持される。 + + +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + count -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/unordered_set/unordered_multiset/count.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/unordered_set/unordered_multiset/count.md b/reference/unordered_set/unordered_multiset/count.md +index ea33f1bdd..02100d4c0 100644 +--- a/reference/unordered_set/unordered_multiset/count.md ++++ b/reference/unordered_set/unordered_multiset/count.md +@@ -45,6 +45,10 @@ constexpr size_type count(const K&amp; k) const; // (2) C++26 + - 最悪: [`size`](size.md) について線形時間 + + ++## 備考 ++- 要素の有無を調べるだけであれば、この関数ではなく[`contains()`](contains.md)メンバ関数を使用する。この関数は等価なキーをもつ要素の個数に対して平均的に比例するが、[`contains()`](contains.md)は平均的に定数時間である ++ ++ + ## 例 + ```cpp example + #include &lt;iostream&gt; +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + erase -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/unordered_set/unordered_multiset/erase.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/unordered_set/unordered_multiset/erase.md b/reference/unordered_set/unordered_multiset/erase.md +index 6b6ba5aea..56ffe478e 100644 +--- a/reference/unordered_set/unordered_multiset/erase.md ++++ b/reference/unordered_set/unordered_multiset/erase.md +@@ -22,6 +22,11 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (4) C++2 + ## 概要 + 指定された要素を削除する + ++- (1) : 指定されたイテレータが指す要素を削除する ++- (2) : 指定された読み取り専用イテレータが指す要素を削除する ++- (3) : 指定されたキー`k`と等価なキーをもつ要素をすべて削除する ++- (4) : 指定されたイテレータ範囲`[first, last)`の要素をすべて削除する ++ + + ## 要件 + - `position` は、有効で、かつ、間接参照可能な(dereferenceable、つまり [`cend`](cend.md)`()` ではない)当該コンテナを指す読み取り専用イテレータでなければならない。 +@@ -58,6 +63,15 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (4) C++2 + + ## 備考 + - 削除された要素を指すイテレータ、および、参照のみ無効になる。なお、規格書に明確な記載は無いが、削除された要素を指すポインタも無効になる。 ++- (3) : 等価なキーをもつ要素が複数ある場合、そのすべてが削除される。1個だけ削除したい場合は、[`find()`](find.md)メンバ関数で得たイテレータを(1), (2)に渡す ++ ```cpp ++ if (auto it = ums.find(x); it != ums.end()) { ++ ums.erase(it); ++ } ++ ``` ++ ++ - キーを指定して削除する場合は等価なキーをもつ要素の個数に平均的に比例するが、イテレータを指定して削除する場合は平均的に定数時間である ++ - [`find()`](find.md)が[`end()`](end.md)を返した場合に、そのイテレータを渡すと動作は未定義となる + - 削除されなかった要素の相対順序は維持される。 + + +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + + + erase -- multimapのerase(key)がすべての要素を削除するために対数時間 + 同じキーの要素数の線形時間がかかるので、回避策を記載 + + a7b6c4509014e270aad0921d19385bac4d5c467a:reference/unordered_set/unordered_set/erase.md + 2026-10-09T12:31:16+09:00 + + <pre><code>diff --git a/reference/unordered_set/unordered_set/erase.md b/reference/unordered_set/unordered_set/erase.md +index 8499b11fe..be972de92 100644 +--- a/reference/unordered_set/unordered_set/erase.md ++++ b/reference/unordered_set/unordered_set/erase.md +@@ -22,6 +22,11 @@ constexpr iterator erase(const_iterator first, const_iterator last); // (4) C++2 + ## 概要 + 指定された要素を削除する + ++- (1) : 指定されたイテレータが指す要素を削除する ++- (2) : 指定された読み取り専用イテレータが指す要素を削除する ++- (3) : 指定されたキー`k`と等価なキーをもつ要素を削除する ++- (4) : 指定されたイテレータ範囲`[first, last)`の要素をすべて削除する ++ + + ## 要件 + - `position` は、有効で、かつ、間接参照可能な(dereferenceable、つまり [`cend`](cend.md)`()` ではない)当該コンテナを指す読み取り専用イテレータでなければならない。 +</code></pre> + + + Akira Takahashi + faithandbrave@gmail.com + + + debugging -- debugging : GCCとClangで動作確認 @@ -1400,926 +1819,4 @@ index 098f6e296..7444bc120 100644 - - リファレンス -- ccomplexページへのリンクを追加 - - d5639efec71b038ce197da36d9986d89520de2c1:reference.md - 2026-10-06T01:23:00+09:00 - - <h1 itemprop="name"><span class="token">リファレンス</span></h1> -<div itemprop="articleBody"><h2>目次</h2> -<ul> -<li><a href="#language-support">言語サポートライブラリ</a></li> -<li><a href="#concepts">コンセプトライブラリ</a></li> -<li><a href="#diagnostics">診断ライブラリ</a></li> -<li><a href="#general-utils">汎用的なユーティリティライブラリ</a></li> -<li><a href="#strings">文字列ライブラリ</a></li> -<li><a href="#localization">ローカライズライブラリ</a></li> -<li><a href="#container">コンテナライブラリ</a></li> -<li><a href="#iterator">イテレータライブラリ</a></li> -<li><a href="#ranges">レンジライブラリ</a></li> -<li><a href="#algorithm">アルゴリズムライブラリ</a></li> -<li><a href="#numerics">数値ライブラリ</a></li> -<li><a href="#debug">デバッグライブラリ</a></li> -<li><a href="#io">入出力ライブラリ</a></li> -<li><a href="#regular-expressions">正規表現ライブラリ</a></li> -<li><a href="#atomic-operations">アトミック操作ライブラリ</a></li> -<li><a href="#thread-support">スレッドサポートライブラリ</a></li> -<li><a href="#clib-facilities">C言語互換ライブラリ</a></li> -<li><a href="#exposition-only">説明専用ライブラリ</a></li> -</ul> -<hr /> -<h2><a href="#language-support" id="language-support">言語サポートライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/limits.html">&lt;limits&gt;</a></code></td> -<td>実装プロパティ</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/version.html">&lt;version&gt;</a></code></td> -<td>実装依存のバージョン情報</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/stdfloat.html">&lt;stdfloat&gt;</a></code></td> -<td>拡張浮動小数点数型</td> -<td>C++23</td> -</tr> -<tr> -<td><code><a href="reference/new.html">&lt;new&gt;</a></code></td> -<td>動的メモリ管理</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/typeinfo.html">&lt;typeinfo&gt;</a></code></td> -<td>型情報</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/source_location.html">&lt;source_location&gt;</a></code></td> -<td>ソースコード上の位置</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/exception.html">&lt;exception&gt;</a></code></td> -<td>例外ハンドリング</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/initializer_list.html">&lt;initializer_list&gt;</a></code></td> -<td>初期化子リスト</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/compare.html">&lt;compare&gt;</a></code></td> -<td>比較演算</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/coroutine.html">&lt;coroutine&gt;</a></code></td> -<td>コルーチン</td> -<td>C++20</td> -</tr> -</tbody> -</table> -<h2><a href="#concepts" id="concepts">コンセプトライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/concepts.html">&lt;concepts&gt;</a></code></td> -<td>言語関係のコンセプト</td> -<td>C++20</td> -</tr> -</tbody> -</table> -<h2><a href="#diagnostics" id="diagnostics">診断ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/stdexcept.html">&lt;stdexcept&gt;</a></code></td> -<td>例外クラス</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/system_error.html">&lt;system_error&gt;</a></code></td> -<td>システムエラーサポート</td> -<td>C++11</td> -</tr> -</tbody> -</table> -<h2><a href="#general-utils" id="general-utils">汎用的なユーティリティライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/utility.html">&lt;utility&gt;</a></code></td> -<td>ユーティリティコンポーネント</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/bitset.html">&lt;bitset&gt;</a></code></td> -<td>ビットの固定サイズシーケンス</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/ratio.html">&lt;ratio&gt;</a></code></td> -<td>コンパイル時有理数</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/tuple.html">&lt;tuple&gt;</a></code></td> -<td>タプル</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/optional.html">&lt;optional&gt;</a></code></td> -<td>任意で値を持たせられるオブジェクト</td> -<td>C++17</td> -</tr> -<tr> -<td><code><a href="reference/variant.html">&lt;variant&gt;</a></code></td> -<td>候補の型を切り替えながら保持できる記憶域型</td> -<td>C++17</td> -</tr> -<tr> -<td><code><a href="reference/any.html">&lt;any&gt;</a></code></td> -<td>あらゆる型の値を保持できる記憶域型</td> -<td>C++17</td> -</tr> -<tr> -<td><code><a href="reference/expected.html">&lt;expected&gt;</a></code></td> -<td>正常値かエラー値のどちらかを持たせられるオブジェクト</td> -<td>C++23</td> -</tr> -<tr> -<td><code><a href="reference/type_traits.html">&lt;type_traits&gt;</a></code></td> -<td>型特性</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/functional.html">&lt;functional&gt;</a></code></td> -<td>関数オブジェクト</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/memory.html">&lt;memory&gt;</a></code></td> -<td>メモリ</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/scoped_allocator.html">&lt;scoped_allocator&gt;</a></code></td> -<td>スコープ付きアロケータ</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/memory_resource.html">&lt;memory_resource&gt;</a></code></td> -<td>多相アロケータ</td> -<td>C++17</td> -</tr> -<tr> -<td><code><a href="reference/chrono.html">&lt;chrono&gt;</a></code></td> -<td>時間ユーティリティ</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/typeindex.html">&lt;typeindex&gt;</a></code></td> -<td>型のインデックス</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/execution.html">&lt;execution&gt;</a></code></td> -<td>実行ポリシー、実行制御ライブラリ(C++26)</td> -<td>C++17</td> -</tr> -<tr> -<td><code><a href="reference/charconv.html">&lt;charconv&gt;</a></code></td> -<td>高速な文字列 ⇔ 数値変換</td> -<td>C++17</td> -</tr> -<tr> -<td><code><a href="reference/format.html">&lt;format&gt;</a></code></td> -<td>文字列フォーマット</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/stacktrace.html">&lt;stacktrace&gt;</a></code></td> -<td>スタックトレース</td> -<td>C++23</td> -</tr> -<tr> -<td><code><a href="reference/meta.html">&lt;meta&gt;</a></code></td> -<td>静的リフレクション</td> -<td>C++26</td> -</tr> -</tbody> -</table> -<h2><a href="#strings" id="strings">文字列ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/string.html">&lt;string&gt;</a></code></td> -<td>文字列クラスと、文字特性</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/string_view.html">&lt;string_view&gt;</a></code></td> -<td>所有権を持たず文字列を参照する文字列クラス</td> -<td>C++17</td> -</tr> -</tbody> -</table> -<h2><a href="#localization" id="localization">ローカライズライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/locale.html">&lt;locale&gt;</a></code></td> -<td>ロケール</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/text_encoding.html">&lt;text_encoding&gt;</a></code></td> -<td>文字列エンコーディングの識別</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/codecvt.html">&lt;codecvt&gt;</a></code></td> -<td>コード変換ファセット</td> -<td>C++11<br /> C++17から非推奨<br /> C++26で削除</td> -</tr> -</tbody> -</table> -<h2><a href="#container" id="container">コンテナライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/array.html">&lt;array&gt;</a></code></td> -<td>配列</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/deque.html">&lt;deque&gt;</a></code></td> -<td>両端キュー</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/forward_list.html">&lt;forward_list&gt;</a></code></td> -<td>単方向リスト</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/hive.html">&lt;hive&gt;</a></code></td> -<td>要素のメモリ位置が安定したコンテナ</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/list.html">&lt;list&gt;</a></code></td> -<td>双方向リスト</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/queue.html">&lt;queue&gt;</a></code></td> -<td>FIFOキュー</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/stack.html">&lt;stack&gt;</a></code></td> -<td>LIFOスタック</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/vector.html">&lt;vector&gt;</a></code></td> -<td>可変長配列</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/inplace_vector.html">&lt;inplace_vector&gt;</a></code></td> -<td>容量固定の可変長配列</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/map.html">&lt;map&gt;</a></code></td> -<td>順序付き連想配列</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/set.html">&lt;set&gt;</a></code></td> -<td>順序付き集合</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/flat_map.html">&lt;flat_map&gt;</a></code></td> -<td>ソート済みキーによる順序付き連想配列</td> -<td>C++23</td> -</tr> -<tr> -<td><code><a href="reference/flat_set.html">&lt;flat_set&gt;</a></code></td> -<td>ソート済みキーによる順序付き集合</td> -<td>C++23</td> -</tr> -<tr> -<td><code><a href="reference/unordered_map.html">&lt;unordered_map&gt;</a></code></td> -<td>非順序連想配列</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/unordered_set.html">&lt;unordered_set&gt;</a></code></td> -<td>非順序集合</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/span.html">&lt;span&gt;</a></code></td> -<td>部分シーケンスの参照</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/mdspan.html">&lt;mdspan&gt;</a></code></td> -<td>多次元配列ビュー</td> -<td>C++23</td> -</tr> -</tbody> -</table> -<h2><a href="#iterator" id="iterator">イテレータライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/iterator.html">&lt;iterator&gt;</a></code></td> -<td>イテレータの定義</td> -<td></td> -</tr> -</tbody> -</table> -<h2><a href="#ranges" id="ranges">レンジライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/ranges.html">&lt;ranges&gt;</a></code></td> -<td>レンジアルゴリズム</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/generator.html">&lt;generator&gt;</a></code></td> -<td>コルーチンによるレンジ生成</td> -<td>C++23</td> -</tr> -</tbody> -</table> -<h2><a href="#algorithm" id="algorithm">アルゴリズムライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/algorithm.html">&lt;algorithm&gt;</a></code></td> -<td>アルゴリズム</td> -<td></td> -</tr> -</tbody> -</table> -<h2><a href="#numerics" id="numerics">数値ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/complex.html">&lt;complex&gt;</a></code></td> -<td>複素数</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/bit.html">&lt;bit&gt;</a></code></td> -<td>ビット操作</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/random.html">&lt;random&gt;</a></code></td> -<td>乱数生成</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/valarray.html">&lt;valarray&gt;</a></code></td> -<td>数値の配列</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/simd.html">&lt;simd&gt;</a></code></td> -<td>データ並列型</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/numeric.html">&lt;numeric&gt;</a></code></td> -<td>一般的な数値操作</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/numbers.html">&lt;numbers&gt;</a></code></td> -<td>数値</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/linalg.html">&lt;linalg&gt;</a></code></td> -<td>線形代数</td> -<td>C++26</td> -</tr> -</tbody> -</table> -<h2><a href="#debug" id="debug">デバッグライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/debugging.html">&lt;debugging&gt;</a></code></td> -<td>デバッグサポート</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/contracts.html">&lt;contracts&gt;</a></code></td> -<td>契約プログラミング</td> -<td>C++26</td> -</tr> -</tbody> -</table> -<h2><a href="#io" id="io">入出力ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/iosfwd.html">&lt;iosfwd&gt;</a></code></td> -<td>先行宣言</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/iostream.html">&lt;iostream&gt;</a></code></td> -<td>標準<code>iostream</code>オブジェクト</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/ios.html">&lt;ios&gt;</a></code></td> -<td><code>iostream</code>基底クラス</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/streambuf.html">&lt;streambuf&gt;</a></code></td> -<td>ストリームバッファ</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/istream.html">&lt;istream&gt;</a></code></td> -<td>入力ストリーム</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/ostream.html">&lt;ostream&gt;</a></code></td> -<td>出力ストリーム</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/iomanip.html">&lt;iomanip&gt;</a></code></td> -<td>フォーマットとマニピュレータ</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/sstream.html">&lt;sstream&gt;</a></code></td> -<td>文字列ストリーム</td> -<td></td> -</tr> -<tr> -<td><code>&lt;strstream&gt;</code></td> -<td>古い文字列ストリーム</td> -<td>C++98から非推奨<br /> C++26で削除</td> -</tr> -<tr> -<td><code><a href="reference/fstream.html">&lt;fstream&gt;</a></code></td> -<td>ファイルストリーム</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/filesystem.html">&lt;filesystem&gt;</a></code></td> -<td>ファイルシステム</td> -<td>C++17</td> -</tr> -<tr> -<td><code><a href="reference/syncstream.html">&lt;syncstream&gt;</a></code></td> -<td>同期化出力ストリームラッパー</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/spanstream.html">&lt;spanstream&gt;</a></code></td> -<td>メモリバッファの所有権をもたないストリーム</td> -<td>C++23</td> -</tr> -<tr> -<td><code><a href="reference/print.html">&lt;print&gt;</a></code></td> -<td>書式指定による出力</td> -<td>C++23</td> -</tr> -</tbody> -</table> -<h2><a href="#regular-expressions" id="regular-expressions">正規表現ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/regex.html">&lt;regex&gt;</a></code></td> -<td>正規表現</td> -<td>C++11</td> -</tr> -</tbody> -</table> -<h2><a href="#atomic-operations" id="atomic-operations">アトミック操作ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/atomic.html">&lt;atomic&gt;</a></code></td> -<td>アトミックアクセスのためのコンポーネント</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/stdatomic.h.html">&lt;stdatomic.h&gt;</a></code></td> -<td>アトミック操作のC互換ライブラリ</td> -<td>C++23</td> -</tr> -</tbody> -</table> -<h2><a href="#thread-support" id="thread-support">スレッドサポートライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/stop_token.html">&lt;stop_token&gt;</a></code></td> -<td>停止状態</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/thread.html">&lt;thread&gt;</a></code></td> -<td>スレッド</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/mutex.html">&lt;mutex&gt;</a></code></td> -<td>ミューテックス</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/shared_mutex.html">&lt;shared_mutex&gt;</a></code></td> -<td>共有ミューテックス</td> -<td>C++14</td> -</tr> -<tr> -<td><code><a href="reference/condition_variable.html">&lt;condition_variable&gt;</a></code></td> -<td>条件変数</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/semaphore.html">&lt;semaphore&gt;</a></code></td> -<td>セマフォ</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/latch.html">&lt;latch&gt;</a></code></td> -<td>ラッチ同期</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/barrier.html">&lt;barrier&gt;</a></code></td> -<td>バリア同期</td> -<td>C++20</td> -</tr> -<tr> -<td><code><a href="reference/future.html">&lt;future&gt;</a></code></td> -<td>Future</td> -<td>C++11</td> -</tr> -<tr> -<td><code><a href="reference/rcu.html">&lt;rcu&gt;</a></code></td> -<td>データの参照・更新</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/hazard_pointer.html">&lt;hazard_pointer&gt;</a></code></td> -<td>ハザードポインタ</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/simd.html">&lt;simd&gt;</a></code></td> -<td>データ並列</td> -<td>C++26</td> -</tr> -</tbody> -</table> -<h2><a href="#clib-facilities" id="clib-facilities">C言語互換ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/cassert.html">&lt;cassert&gt;</a></code></td> -<td>アサート</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/ccomplex.html">&lt;ccomplex&gt;</a></code></td> -<td>複素数</td> -<td>C++11 (C99)<br /> C++17で非推奨<br /> C++20で削除</td> -</tr> -<tr> -<td><code><a href="reference/cctype.html">&lt;cctype&gt;</a></code></td> -<td>文字種別の判定と変換</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cerrno.html">&lt;cerrno&gt;</a></code></td> -<td>エラー番号</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cfenv.html">&lt;cfenv&gt;</a></code></td> -<td>浮動小数点環境へのアクセス</td> -<td>C++11 (C99)</td> -</tr> -<tr> -<td><code><a href="reference/cfloat.html">&lt;cfloat&gt;</a></code></td> -<td>浮動小数点数の定数</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cinttypes.html">&lt;cinttypes&gt;</a></code></td> -<td>固定精度整数のための書式指定マクロ</td> -<td>C++11 (C99)</td> -</tr> -<tr> -<td><code>&lt;ciso646&gt;</code></td> -<td><code>&amp;&amp;</code>に対する別名<code>and</code>のような、各種演算子に対するマクロを定義する。<br /> ただしC++ではこれらの別名はキーワードとして定義されるため、このヘッダでは何も定義されない。</td> -<td>C++20で削除</td> -</tr> -<tr> -<td><code><a href="reference/climits.html">&lt;climits&gt;</a></code></td> -<td>整数型の最小値、最大値を表すマクロ</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/clocale.html">&lt;clocale&gt;</a></code></td> -<td>ロケール</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cmath.html">&lt;cmath&gt;</a></code></td> -<td>数学関数</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/csetjmp.html">&lt;csetjmp&gt;</a></code></td> -<td>ジャンプ処理</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/csignal.html">&lt;csignal&gt;</a></code></td> -<td>シグナル</td> -<td></td> -</tr> -<tr> -<td><code>&lt;cstdalign&gt;</code></td> -<td>アライメント操作のマクロ</td> -<td>C++17で非推奨<br /> C++20で削除</td> -</tr> -<tr> -<td><code><a href="reference/cstdarg.html">&lt;cstdarg&gt;</a></code></td> -<td>可変引数操作</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/stdbit.h.html">&lt;stdbit.h&gt;</a></code></td> -<td>ビット操作</td> -<td>C++26</td> -</tr> -<tr> -<td><code><a href="reference/stdckdint.h.html">&lt;stdckdint.h&gt;</a></code></td> -<td>検査付き整数演算</td> -<td>C++26</td> -</tr> -<tr> -<td><code>&lt;cstdbool&gt;</code></td> -<td>真理値型の定義</td> -<td>C++11 (C99)<br /> C++17で非推奨<br /> C++20で削除</td> -</tr> -<tr> -<td><code><a href="reference/cstddef.html">&lt;cstddef&gt;</a></code></td> -<td>基本的な型、値、マクロの定義</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cstdint.html">&lt;cstdint&gt;</a></code></td> -<td>大きさが規定されている整数型</td> -<td>C++11 (C99)</td> -</tr> -<tr> -<td><code><a href="reference/cstdio.html">&lt;cstdio&gt;</a></code></td> -<td>入出力</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cstdlib.html">&lt;cstdlib&gt;</a></code></td> -<td>ユーティリティ関数</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cstring.html">&lt;cstring&gt;</a></code></td> -<td>文字列操作</td> -<td></td> -</tr> -<tr> -<td><code>&lt;ctgmath&gt;</code></td> -<td>ジェネリックな数学関数</td> -<td>C++11 (C99)<br /> C++17で非推奨<br /> C++20で削除</td> -</tr> -<tr> -<td><code><a href="reference/ctime.html">&lt;ctime&gt;</a></code></td> -<td>日付・時間</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cuchar.html">&lt;cuchar&gt;</a></code></td> -<td>ユニコード文字型</td> -<td>C++11 (C11)</td> -</tr> -<tr> -<td><code><a href="reference/cwchar.html">&lt;cwchar&gt;</a></code></td> -<td>ワイド文字型</td> -<td></td> -</tr> -<tr> -<td><code><a href="reference/cwctype.html">&lt;cwctype&gt;</a></code></td> -<td>ワイド文字の種別と判定</td> -<td></td> -</tr> -</tbody> -</table> -<h2><a href="#exposition-only" id="exposition-only">説明専用ライブラリ</a></h2> -<table border="1" bordercolor="#888" style="border-collapse:collapse"> -<thead> -<tr> -<th>ヘッダ</th> -<th>説明</th> -<th>対応バージョン</th> -</tr> -</thead> -<tbody> -<tr> -<td><code><a href="reference/exposition-only.html">exposition-only</a></code></td> -<td>説明のためのものを集めたページ (実際のライブラリではない)</td> -<td></td> -</tr> -</tbody> -</table> -<h2>参照</h2> -<ul> -<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2867r2.html" target="_blank">P2867R2 Remove Deprecated <code>strstream</code>s From C++26</a></li> -</ul></div> - - - K10-K10 - keito.tottori@gmail.com - - - - - ccomplex -- `ccomplex`ライブラリページを追加 - - f32653995d9bb58cd30d965ad7ede6553b0a50f2:reference/ccomplex.md - 2026-10-06T01:22:44+09:00 - - <div class="header">&lt;ccomplex&gt;</div><h1 itemprop="name"><span class="token">ccomplex</span><span class="cpp cpp11" title="C++11で追加">(C++11)</span><span class="cpp cpp17deprecated text-warning" title="C++17で非推奨">(C++17で非推奨)</span><span class="cpp cpp20removed text-danger" title="C++20で削除">(C++20で削除)</span></h1> -<div itemprop="articleBody"><p><code>&lt;ccomplex&gt;</code>ヘッダは、C言語の複素数ライブラリ<code>&lt;complex.h&gt;</code>をC++で使用するためのヘッダ。ただし、C++には標準で<code>&lt;complex&gt;</code>ヘッダが存在しているため、このヘッダは実際には<code>&lt;complex&gt;</code>ヘッダをインクルードするだけのラッパーである。</p> -<h2>非推奨・削除の詳細</h2> -<p>もともとC99互換のためにC++11で追加されたが、<code>&lt;complex&gt;</code>ヘッダが存在するため無用であり、C++17で非推奨となり、C++20で削除された。</p> -<p>代替機能として、<code>&lt;complex&gt;</code>ヘッダを使用すること。</p> -<h2>バージョン</h2> -<h3>言語</h3> -<ul> -<li>C++11</li> -</ul> -<h2>関連項目</h2> -<ul> -<li><code><a href="complex.html">&lt;complex&gt;</a></code></li> -</ul> -<h2>参照</h2> -<ul> -<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html" target="_blank">P0619R4 Reviewing Deprecated Facilities of C++17 for C++20</a></li> -</ul></div> - - - K10-K10 - keito.tottori@gmail.com - - - \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 9545ef6c70f..2314a5327a1 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -8550,7 +8550,7 @@ https://cpprefjp.github.io/reference/map/multimap/count.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -8606,7 +8606,7 @@ https://cpprefjp.github.io/reference/map/multimap/erase.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -27149,7 +27149,7 @@ https://cpprefjp.github.io/reference/unordered_set/unordered_multiset/count.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -27191,7 +27191,7 @@ https://cpprefjp.github.io/reference/unordered_set/unordered_multiset/erase.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -27492,7 +27492,7 @@ https://cpprefjp.github.io/reference/unordered_set/unordered_set/erase.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -31965,21 +31965,21 @@ https://cpprefjp.github.io/reference/debugging/breakpoint_if_debugging.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T14:24:38+09:00 daily 0.7 https://cpprefjp.github.io/reference/debugging/is_debugger_present.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T14:24:38+09:00 daily 0.7 https://cpprefjp.github.io/reference/debugging/breakpoint.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T14:24:38+09:00 daily 0.7 @@ -47085,7 +47085,7 @@ https://cpprefjp.github.io/reference/set/multiset/count.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -47141,7 +47141,7 @@ https://cpprefjp.github.io/reference/set/multiset/erase.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -48051,7 +48051,7 @@ https://cpprefjp.github.io/reference/unordered_map/unordered_multimap/count.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -48093,7 +48093,7 @@ https://cpprefjp.github.io/reference/unordered_map/unordered_multimap/erase.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6 @@ -48394,7 +48394,7 @@ https://cpprefjp.github.io/reference/unordered_map/unordered_map/erase.html - 2026-10-08T14:43:07+09:00 + 2026-10-09T12:31:16+09:00 daily 0.6