From 8e136851714ae262cd98b11b1a35b41622527a9e Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Sun, 18 May 2025 16:13:53 +0900 Subject: [PATCH 01/23] fix complexity of clear method --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 1d0ce4f0c2..fd12bdc0e2 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index e4d2525812..a1f76170ca 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 8ba2f6e249..f2fd9a7829 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index e54f8a9f44..b6394e9f7c 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 From 056967cba35edd35031492137dd1c1d43e008bc8 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Sun, 18 May 2025 16:20:42 +0900 Subject: [PATCH 02/23] fix: explanation --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index fd12bdc0e2..92bc6159b3 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index a1f76170ca..cd593049ea 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index f2fd9a7829..ed4129e925 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index b6394e9f7c..0062e4a920 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -34,7 +34,7 @@ void clear() noexcept; ## 計算量 -本関数呼び出し前のコンテナの要素数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 ## 例 From 26ded1a892908b4b1afc182aa7bd669ed1d2a03f Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Wed, 21 May 2025 00:54:16 +0900 Subject: [PATCH 03/23] fix: reflect issue conversation --- .../unordered_map/unordered_map/clear.md | 20 ++++++++++++++++++- .../unordered_map/unordered_multimap/clear.md | 20 ++++++++++++++++++- .../unordered_set/unordered_multiset/clear.md | 20 ++++++++++++++++++- .../unordered_set/unordered_set/clear.md | 20 ++++++++++++++++++- 4 files changed, 76 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 92bc6159b3..c84f0cf83c 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -33,8 +33,26 @@ void clear() noexcept; 投げない。 +## 備考 +- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_map tmp; +s.swap(tmp); +``` + + ## 計算量 -本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 + +### 計算量に関する備考 +- 多くの実装(GCC libstdc++, LLVM libc++ など)は + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する + +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 ## 例 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index cd593049ea..399652ef34 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -33,8 +33,26 @@ void clear() noexcept; 投げない。 +## 備考 +- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_multimap tmp; +s.swap(tmp); +``` + + ## 計算量 -本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 + +### 計算量に関する備考 +- 多くの実装(GCC libstdc++, LLVM libc++ など)は + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する + +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 ## 例 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index ed4129e925..295b271219 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -33,8 +33,26 @@ void clear() noexcept; 投げない。 +## 備考 +- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_multiset tmp; +s.swap(tmp); +``` + + ## 計算量 -本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 + +### 計算量に関する備考 +- 多くの実装(GCC libstdc++, LLVM libc++ など)は + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する + +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 ## 例 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 0062e4a920..9e45067d9c 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -33,8 +33,26 @@ void clear() noexcept; 投げない。 +## 備考 +- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_set tmp; +s.swap(tmp); +``` + + ## 計算量 -本関数呼び出し前のバケット数([`bucket_count`](bucket_count.md)`()`)に比例 +本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 + +### 計算量に関する備考 +- 多くの実装(GCC libstdc++, LLVM libc++ など)は + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する + +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 ## 例 From 588262dd873ddedd784e9b27f11042090a8f21a4 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Wed, 21 May 2025 00:56:22 +0900 Subject: [PATCH 04/23] fix: format --- reference/unordered_map/unordered_map/clear.md | 4 ++-- reference/unordered_map/unordered_multimap/clear.md | 4 ++-- reference/unordered_set/unordered_multiset/clear.md | 4 ++-- reference/unordered_set/unordered_set/clear.md | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index c84f0cf83c..f08c941536 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 399652ef34..1709e5a12c 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 295b271219..6297aa4b32 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 9e45067d9c..99d4dfc32c 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. すべてのバケットを順に走査し + 2. 各バケットを破棄する という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 From 6f51ec9fc5d2391a979c581a5b50ca35faf44f14 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Wed, 21 May 2025 01:01:47 +0900 Subject: [PATCH 05/23] fix: minor fix --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index f08c941536..15cf893c73 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. すべてのバケットを順に走査し 2. 各バケットを破棄する -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 1709e5a12c..b57e326f08 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. すべてのバケットを順に走査し 2. 各バケットを破棄する -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 6297aa4b32..0c02d3ef4e 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. すべてのバケットを順に走査し 2. 各バケットを破棄する -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 99d4dfc32c..72acb0a6b8 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. すべてのバケットを順に走査し 2. 各バケットを破棄する -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例 する傾向がある。 +という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 From f572dabcf8c9b588b8b4ba14c20f4bd8a9bc0087 Mon Sep 17 00:00:00 2001 From: koki watanabe <56009584+math-hiyoko@users.noreply.github.com> Date: Sun, 25 May 2025 23:42:28 +0900 Subject: [PATCH 06/23] Update reference/unordered_map/unordered_map/clear.md Co-authored-by: Akira Takahashi --- reference/unordered_map/unordered_map/clear.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 15cf893c73..610429a354 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -35,7 +35,7 @@ void clear() noexcept; ## 備考 - clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_map tmp; From b25ee37d0372f32dec1ad9ef183cfc5dc55d2271 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 00:14:18 +0900 Subject: [PATCH 07/23] reflect suggestions --- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index b57e326f08..ab16a56dff 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -35,7 +35,7 @@ void clear() noexcept; ## 備考 - clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_multimap tmp; diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 0c02d3ef4e..bef4ac38b6 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -35,7 +35,7 @@ void clear() noexcept; ## 備考 - clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_multiset tmp; diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 72acb0a6b8..a281059707 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -35,7 +35,7 @@ void clear() noexcept; ## 備考 - clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が温存され、動的メモリが残る場合がある。 +実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_set tmp; From 3bb29a21a224749d75c2ced270b2bf59fd8a61d4 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 00:16:50 +0900 Subject: [PATCH 08/23] fix: amend procedure --- reference/unordered_map/unordered_map/clear.md | 4 ++-- reference/unordered_map/unordered_multimap/clear.md | 4 ++-- reference/unordered_set/unordered_multiset/clear.md | 4 ++-- reference/unordered_set/unordered_set/clear.md | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 610429a354..bd0b88a237 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. 全ての要素を破棄する + 2. 全てのバケットを順に走査して各バケットを破棄 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index ab16a56dff..0cea90a256 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. 全ての要素を破棄する + 2. 全てのバケットを順に走査して各バケットを破棄 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index bef4ac38b6..ef733cb026 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. 全ての要素を破棄する + 2. 全てのバケットを順に走査して各バケットを破棄 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index a281059707..f734aef3e3 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -48,8 +48,8 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. すべてのバケットを順に走査し - 2. 各バケットを破棄する + 1. 全ての要素を破棄する + 2. 全てのバケットを順に走査して各バケットを破棄 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 From bb0ffafab558ff1b5551f22c3329e60e16798d42 Mon Sep 17 00:00:00 2001 From: koki watanabe <56009584+math-hiyoko@users.noreply.github.com> Date: Mon, 26 May 2025 00:34:05 +0900 Subject: [PATCH 09/23] Apply suggestions from code review Co-authored-by: Koichi Murase --- reference/unordered_map/unordered_map/clear.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index bd0b88a237..07aa45df0b 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -34,8 +34,8 @@ void clear() noexcept; ## 備考 -- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_map tmp; From e6690f088d59faee2203dae918e1375b6900791f Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 00:36:09 +0900 Subject: [PATCH 10/23] reflect suggestions --- reference/unordered_map/unordered_multimap/clear.md | 4 ++-- reference/unordered_set/unordered_multiset/clear.md | 4 ++-- reference/unordered_set/unordered_set/clear.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 0cea90a256..b4fcf646e9 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -34,8 +34,8 @@ void clear() noexcept; ## 備考 -- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_multimap tmp; diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index ef733cb026..73a6c20d51 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -34,8 +34,8 @@ void clear() noexcept; ## 備考 -- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_multiset tmp; diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index f734aef3e3..3f8b24f45f 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -34,8 +34,8 @@ void clear() noexcept; ## 備考 -- clear() は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては clear 後もバケット配列が維持され、動的メモリが残る場合がある。 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う ```CPP std::unordered_set tmp; From 2a7fe576da66585d24834cd22a9b89e97a3849c6 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 23:17:33 +0900 Subject: [PATCH 11/23] =?UTF-8?q?fix:=20=E7=A0=B4=E6=A3=84->=E5=88=9D?= =?UTF-8?q?=E6=9C=9F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 07aa45df0b..0409a9a652 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -49,7 +49,7 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを破棄 + 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index b4fcf646e9..8b1f9a7bec 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -49,7 +49,7 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを破棄 + 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 73a6c20d51..846f3bafdf 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -49,7 +49,7 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを破棄 + 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 3f8b24f45f..f1a4c6d4d0 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -49,7 +49,7 @@ s.swap(tmp); ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを破棄 + 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 From af3a11d31a25784b8c84c75f21f4e7c68f1d7b50 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 23:20:53 +0900 Subject: [PATCH 12/23] fix: order of factor --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 0409a9a652..4fccb40771 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. 全ての要素を破棄する 2. 全てのバケットを順に走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 +という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 8b1f9a7bec..f9bcd8b89d 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. 全ての要素を破棄する 2. 全てのバケットを順に走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 +という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 846f3bafdf..5d19486ecd 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. 全ての要素を破棄する 2. 全てのバケットを順に走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 +という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index f1a4c6d4d0..ad5ec237eb 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -51,7 +51,7 @@ s.swap(tmp); 1. 全ての要素を破棄する 2. 全てのバケットを順に走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`bucket_count`](bucket_count.md)`()` + [`size`](size.md)`()` に比例する傾向がある。 +という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 From 4c79551c79079ba7b99f87061226e4f8fd36c12a Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 23:23:05 +0900 Subject: [PATCH 13/23] fix: apply suggestion --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 4fccb40771..9fbd16572e 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -52,7 +52,7 @@ s.swap(tmp); 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 +規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 ## 例 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index f9bcd8b89d..65b02b8314 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -52,7 +52,7 @@ s.swap(tmp); 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 +規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 ## 例 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 5d19486ecd..29e8fbfd49 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -52,7 +52,7 @@ s.swap(tmp); 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 +規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 ## 例 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index ad5ec237eb..e96d563831 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -52,7 +52,7 @@ s.swap(tmp); 2. 全てのバケットを順に走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -これは規格が定義する「計算量」(オブジェクトに対する操作の数)とは別物である。 +規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 ## 例 From bb394c16fccaee75e975cd363072afa8cbb38ada Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 23:24:43 +0900 Subject: [PATCH 14/23] fix: order of topic --- .../unordered_map/unordered_map/clear.md | 20 +++++++++---------- .../unordered_map/unordered_multimap/clear.md | 20 +++++++++---------- .../unordered_set/unordered_multiset/clear.md | 20 +++++++++---------- .../unordered_set/unordered_set/clear.md | 20 +++++++++---------- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 9fbd16572e..be2530f472 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -33,16 +33,6 @@ void clear() noexcept; 投げない。 -## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う -```CPP -std::unordered_map tmp; -s.swap(tmp); -``` - - ## 計算量 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 @@ -55,6 +45,16 @@ s.swap(tmp); 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +## 備考 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_map tmp; +s.swap(tmp); +``` + + ## 例 ```cpp example #include diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 65b02b8314..ffa0832a4a 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -33,16 +33,6 @@ void clear() noexcept; 投げない。 -## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う -```CPP -std::unordered_multimap tmp; -s.swap(tmp); -``` - - ## 計算量 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 @@ -55,6 +45,16 @@ s.swap(tmp); 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +## 備考 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_multimap tmp; +s.swap(tmp); +``` + + ## 例 ```cpp example #include diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 29e8fbfd49..94488f2997 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -33,16 +33,6 @@ void clear() noexcept; 投げない。 -## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う -```CPP -std::unordered_multiset tmp; -s.swap(tmp); -``` - - ## 計算量 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 @@ -55,6 +45,16 @@ s.swap(tmp); 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +## 備考 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_multiset tmp; +s.swap(tmp); +``` + + ## 例 ```cpp example #include diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index e96d563831..188ae2c6d9 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -33,16 +33,6 @@ void clear() noexcept; 投げない。 -## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 -実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う -```CPP -std::unordered_set tmp; -s.swap(tmp); -``` - - ## 計算量 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 @@ -55,6 +45,16 @@ s.swap(tmp); 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +## 備考 +- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 +- メモリを確実に解放したいときには以下のように操作を行う +```CPP +std::unordered_set tmp; +s.swap(tmp); +``` + + ## 例 ```cpp example #include From 202823f1b3367e7eb4a9a9f7be0bbd14b493ad3a Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Mon, 26 May 2025 23:30:15 +0900 Subject: [PATCH 15/23] fix: minor fix --- reference/unordered_map/unordered_map/clear.md | 4 ++-- reference/unordered_map/unordered_multimap/clear.md | 4 ++-- reference/unordered_set/unordered_multiset/clear.md | 4 ++-- reference/unordered_set/unordered_set/clear.md | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index be2530f472..e91f81b0ba 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -38,8 +38,8 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを初期化 + 1. 全ての要素を走査して各要素を破棄 + 2. 全てのバケットを走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index ffa0832a4a..3c02d091bd 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -38,8 +38,8 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを初期化 + 1. 全ての要素を走査して各要素を破棄 + 2. 全てのバケットを走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 94488f2997..8120d2c239 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -38,8 +38,8 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを初期化 + 1. 全ての要素を走査して各要素を破棄 + 2. 全てのバケットを走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 188ae2c6d9..0643255597 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -38,8 +38,8 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を破棄する - 2. 全てのバケットを順に走査して各バケットを初期化 + 1. 全ての要素を走査して各要素を破棄 + 2. 全てのバケットを走査して各バケットを初期化 という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 From b13d26967049fcf31f235581692e7ca01815bdd5 Mon Sep 17 00:00:00 2001 From: Koki Watanabe <56009584+math-hiyoko@users.noreply.github.com> Date: Tue, 27 May 2025 21:07:32 +0900 Subject: [PATCH 16/23] Apply suggestions from code review Co-authored-by: Koichi Murase --- reference/unordered_map/unordered_map/clear.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index e91f81b0ba..5f72a8196d 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -41,15 +41,15 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 ## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +- `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う -```CPP +```cpp std::unordered_map tmp; s.swap(tmp); ``` From 7f7b3ab4fade724c7a1c44062dc15cbabc35a1f5 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Tue, 27 May 2025 21:10:44 +0900 Subject: [PATCH 17/23] fix: reflect suggestions --- reference/unordered_map/unordered_multimap/clear.md | 8 ++++---- reference/unordered_set/unordered_multiset/clear.md | 8 ++++---- reference/unordered_set/unordered_set/clear.md | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 3c02d091bd..21b00f4702 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -41,15 +41,15 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 ## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +- `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う -```CPP +```cpp std::unordered_multimap tmp; s.swap(tmp); ``` diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 8120d2c239..8b075a03f5 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -41,15 +41,15 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 ## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +- `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う -```CPP +```cpp std::unordered_multiset tmp; s.swap(tmp); ``` diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 0643255597..4569f3e5d1 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -41,15 +41,15 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットを初期化 -という手順を取るため、実行時間は概ね [`size`](size.md)`()` + [`bucket_count`](bucket_count.md)`()` に比例する傾向がある。 -規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査を考慮せず「コンテナの全要素を削除する」として、全要素数Nに対してO(N)に規定されるが、実行時間に影響する時間計算量としてはバケット数Cに対して線形となる。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 ## 備考 -- `clear()` は バケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格上は要求していない。 +- `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - メモリを確実に解放したいときには以下のように操作を行う -```CPP +```cpp std::unordered_set tmp; s.swap(tmp); ``` From 349f1175f01f0ed94ea4bb10bee40dc23309b7bc Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Tue, 27 May 2025 21:14:16 +0900 Subject: [PATCH 18/23] fix: change statement --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 5f72a8196d..224b2d8f2f 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -39,7 +39,7 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットを初期化 + 2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 21b00f4702..11fb1a1031 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -39,7 +39,7 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットを初期化 + 2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 8b075a03f5..aadc66f8fd 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -39,7 +39,7 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットを初期化 + 2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 4569f3e5d1..acd8bc23c9 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -39,7 +39,7 @@ void clear() noexcept; ### 計算量に関する備考 - 多くの実装(GCC libstdc++, LLVM libc++ など)は 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットを初期化 + 2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 From 47cef6b54e55c03822566220eac1f78bb97913b2 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Wed, 28 May 2025 22:54:36 +0900 Subject: [PATCH 19/23] fix: reflect discussions on the PR --- reference/unordered_map/unordered_map/clear.md | 5 ++--- reference/unordered_map/unordered_multimap/clear.md | 5 ++--- reference/unordered_set/unordered_multiset/clear.md | 5 ++--- reference/unordered_set/unordered_set/clear.md | 5 ++--- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 224b2d8f2f..f4801435c8 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -48,10 +48,9 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには以下のように操作を行う ```cpp -std::unordered_map tmp; -s.swap(tmp); +um = std::unordered_map(); ``` diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 11fb1a1031..a398dd962c 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -48,10 +48,9 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには以下のように操作を行う ```cpp -std::unordered_multimap tmp; -s.swap(tmp); +um = std::unordered_multimap(); ``` diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index aadc66f8fd..400dbac0b0 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -48,10 +48,9 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには以下のように操作を行う ```cpp -std::unordered_multiset tmp; -s.swap(tmp); +ums = std::unordered_multiset(); ``` diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index acd8bc23c9..38e5d5d244 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -48,10 +48,9 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- メモリを確実に解放したいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには以下のように操作を行う ```cpp -std::unordered_set tmp; -s.swap(tmp); +us = std::unordered_set(); ``` From 457602ec9ed561bf47cb0ad0877ceda8aa07408b Mon Sep 17 00:00:00 2001 From: Koki Watanabe <56009584+math-hiyoko@users.noreply.github.com> Date: Fri, 30 May 2025 01:50:47 +0900 Subject: [PATCH 20/23] Apply suggestions from code review Co-authored-by: Koichi Murase --- reference/unordered_map/unordered_map/clear.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index f4801435c8..f7890756aa 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -37,9 +37,10 @@ void clear() noexcept; 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 ### 計算量に関する備考 -- 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットの状態をリセット +多くの実装(GCC libstdc++, LLVM libc++ など)は + +1. 全ての要素を走査して各要素を破棄 +2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 @@ -48,7 +49,7 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- バケット数を初期状態まで縮小させたいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する ```cpp um = std::unordered_map(); ``` From b7bc91cf101774c98f5b100c60f57cd3f9ce064a Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Fri, 30 May 2025 01:54:47 +0900 Subject: [PATCH 21/23] fix: reflect suggestions --- reference/unordered_map/unordered_multimap/clear.md | 9 +++++---- reference/unordered_set/unordered_multiset/clear.md | 9 +++++---- reference/unordered_set/unordered_set/clear.md | 9 +++++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index a398dd962c..9eb3aab77d 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -37,9 +37,10 @@ void clear() noexcept; 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 ### 計算量に関する備考 -- 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットの状態をリセット +多くの実装(GCC libstdc++, LLVM libc++ など)は + +1. 全ての要素を走査して各要素を破棄 +2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 @@ -48,7 +49,7 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- バケット数を初期状態まで縮小させたいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する ```cpp um = std::unordered_multimap(); ``` diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 400dbac0b0..18a00adaed 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -37,9 +37,10 @@ void clear() noexcept; 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 ### 計算量に関する備考 -- 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットの状態をリセット +多くの実装(GCC libstdc++, LLVM libc++ など)は + +1. 全ての要素を走査して各要素を破棄 +2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 @@ -48,7 +49,7 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- バケット数を初期状態まで縮小させたいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する ```cpp ums = std::unordered_multiset(); ``` diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 38e5d5d244..ca24658e1a 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -37,9 +37,10 @@ void clear() noexcept; 本関数呼び出し前のコンテナの要素数([`size`](size.md)`()`)に比例 ### 計算量に関する備考 -- 多くの実装(GCC libstdc++, LLVM libc++ など)は - 1. 全ての要素を走査して各要素を破棄 - 2. 全てのバケットを走査して各バケットの状態をリセット +多くの実装(GCC libstdc++, LLVM libc++ など)は + +1. 全ての要素を走査して各要素を破棄 +2. 全てのバケットを走査して各バケットの状態をリセット という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 @@ -48,7 +49,7 @@ void clear() noexcept; ## 備考 - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 -- バケット数を初期状態まで縮小させたいときには以下のように操作を行う +- バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する ```cpp us = std::unordered_set(); ``` From 0107d7b93199c7c20a4cb7b513952ff8816b0b0f Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Fri, 30 May 2025 01:56:41 +0900 Subject: [PATCH 22/23] fix: indent code block --- reference/unordered_map/unordered_map/clear.md | 6 +++--- reference/unordered_map/unordered_multimap/clear.md | 6 +++--- reference/unordered_set/unordered_multiset/clear.md | 6 +++--- reference/unordered_set/unordered_set/clear.md | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index f7890756aa..77f01844e1 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -50,9 +50,9 @@ void clear() noexcept; - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する -```cpp -um = std::unordered_map(); -``` + ```cpp + um = std::unordered_map(); + ``` ## 例 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 9eb3aab77d..42e015bfd0 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -50,9 +50,9 @@ void clear() noexcept; - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する -```cpp -um = std::unordered_multimap(); -``` + ```cpp + um = std::unordered_multimap(); + ``` ## 例 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index 18a00adaed..e3c3f92333 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -50,9 +50,9 @@ void clear() noexcept; - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する -```cpp -ums = std::unordered_multiset(); -``` + ```cpp + ums = std::unordered_multiset(); + ``` ## 例 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index ca24658e1a..66d2c8b14d 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -50,9 +50,9 @@ void clear() noexcept; - `clear()` がバケット数([`bucket_count`](bucket_count.md)`()`)を縮小することを規格は要求していない。 実装によっては `clear()` 後もバケット配列が維持され、動的メモリが残る場合がある。 - バケット数を初期状態まで縮小させたいときには `clear()` の代わりに以下のように操作する -```cpp -us = std::unordered_set(); -``` + ```cpp + us = std::unordered_set(); + ``` ## 例 From 507925290698fc75f0e2c4d05849a850b81da4f3 Mon Sep 17 00:00:00 2001 From: koki watanabe Date: Fri, 30 May 2025 01:59:02 +0900 Subject: [PATCH 23/23] fix: markdown format --- reference/unordered_map/unordered_map/clear.md | 2 +- reference/unordered_map/unordered_multimap/clear.md | 2 +- reference/unordered_set/unordered_multiset/clear.md | 2 +- reference/unordered_set/unordered_set/clear.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/unordered_map/unordered_map/clear.md b/reference/unordered_map/unordered_map/clear.md index 77f01844e1..34eaefc58f 100644 --- a/reference/unordered_map/unordered_map/clear.md +++ b/reference/unordered_map/unordered_map/clear.md @@ -42,7 +42,7 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットの状態をリセット -という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() *` [`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 diff --git a/reference/unordered_map/unordered_multimap/clear.md b/reference/unordered_map/unordered_multimap/clear.md index 42e015bfd0..9480119e06 100644 --- a/reference/unordered_map/unordered_multimap/clear.md +++ b/reference/unordered_map/unordered_multimap/clear.md @@ -42,7 +42,7 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットの状態をリセット -という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() *` [`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 diff --git a/reference/unordered_set/unordered_multiset/clear.md b/reference/unordered_set/unordered_multiset/clear.md index e3c3f92333..f19039fd31 100644 --- a/reference/unordered_set/unordered_multiset/clear.md +++ b/reference/unordered_set/unordered_multiset/clear.md @@ -42,7 +42,7 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットの状態をリセット -という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() *` [`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。 diff --git a/reference/unordered_set/unordered_set/clear.md b/reference/unordered_set/unordered_set/clear.md index 66d2c8b14d..4aabb8fe94 100644 --- a/reference/unordered_set/unordered_set/clear.md +++ b/reference/unordered_set/unordered_set/clear.md @@ -42,7 +42,7 @@ void clear() noexcept; 1. 全ての要素を走査して各要素を破棄 2. 全てのバケットを走査して各バケットの状態をリセット -という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() * `[`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 +という手順を取るため、実際の実行時間はバケット数 [`bucket_count`](bucket_count.md)`()` について線形となる (`size() <= bucket_count() *` [`max_load_factor()`](max_load_factor.md) = O(`bucket_count()`) であることに注意)。 規格の計算量の要件は要素数 `size()` に線形となっているが、規格がコンテナに対して定義する計算量は「コンテナに格納している要素に対する操作の数の計算量」であるためバケットの走査などを考慮していない。