Skip to content

Commit 42b481a

Browse files
authored
flatなコンテナのemplace/_hintの計算量追記
1 parent 1b8a7cd commit 42b481a

File tree

8 files changed

+22
-4
lines changed

8 files changed

+22
-4
lines changed

reference/flat_map/flat_map/emplace.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ c.values.insert(value_it, std::move(t.second));
4444
## 戻り値
4545
挿入されたかどうかを示す `bool` と、挿入された要素へのイテレータからなる [`pair`](/reference/utility/pair.md) を返す。挿入されなかったときは、既存要素へのイテレータを返す。
4646

47+
## 計算量
48+
49+
操作の前のコンテナサイズ([`size()`](size.md))を`N`とすると
50+
51+
- 新しい要素が挿入された場合: `N`に対して線形
52+
- 要素の挿入が行われなかった場合: `N`に対して対数
4753

4854
##
4955
### 単純なキー・値を挿入する例

reference/flat_map/flat_map/emplace_hint.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ iterator emplace_hint(const_iterator hint, Args&&... args);
2424
2525
2626
## 計算量
27-
一般にコンテナのサイズについて対数時間だが、新しい要素が `hint` の前に挿入された場合は償却定数時間。
2827
28+
操作の前のコンテナサイズ([`size()`](size.md))を`N`とすると、`O(N)`(挿入が行われなかった場合は`O(log N)`より小さくなる可能性がある)。
2929
3030
## 備考
3131
- [`try_emplace`](try_emplace.md) と異なり、たとえ要素が挿入されなかった場合でも `value_type` 型のオブジェクトが構築される可能性があり、結果として引数 `args` が [`move`](/reference/utility/move.md) の対象となって変更されてしまっている可能性があるため、注意が必要である。

reference/flat_map/flat_multimap/emplace.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ iterator emplace(Args&&... args);
2525
## 戻り値
2626
挿入された要素へのイテレータを返す。
2727
28+
## 計算量
29+
30+
コンテナサイズ([`size()`](size.md))に対して線形
2831
2932
## 例
3033
```cpp example

reference/flat_map/flat_multimap/emplace_hint.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ iterator emplace_hint(const_iterator hint, Args&&... args);
2424
2525
2626
## 計算量
27-
一般にコンテナのサイズについて対数時間だが、新しい要素が `hint` の前に挿入された場合は償却定数時間。
2827
28+
コンテナサイズ([`size()`](size.md))に対して線形
2929
3030
## 例
3131
```cpp example

reference/flat_set/flat_multiset/emplace.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ iterator emplace(Args&&... args);
2525
## 戻り値
2626
挿入された要素へのイテレータを返す。
2727
28+
## 計算量
29+
30+
コンテナサイズ([`size()`](size.md))に対して線形
2831
2932
## 例
3033
### 単純な挿入の例

reference/flat_set/flat_multiset/emplace_hint.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ iterator emplace_hint(const_iterator hint, Args&&... args);
2424
2525
2626
## 計算量
27-
一般にコンテナのサイズについて対数時間だが、新しい要素が `hint` の前に挿入された場合は償却定数時間。
2827
28+
コンテナサイズ([`size()`](size.md))に対して線形
2929
3030
## 例
3131
```cpp example

reference/flat_set/flat_set/emplace.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ c.insert(it, std::move(t));
3939
## 戻り値
4040
挿入されたかどうかを示す `bool` と、挿入された要素へのイテレータからなる [`pair`](/reference/utility/pair.md) を返す。挿入されなかったときは、既存要素へのイテレータを返す。
4141

42+
## 計算量
43+
44+
操作の前のコンテナサイズ([`size()`](size.md))を`N`とすると
45+
46+
- 新しい要素が挿入された場合: `N`に対して線形
47+
- 要素の挿入が行われなかった場合: `N`に対して対数
4248

4349
##
4450
### 単純な挿入の例

reference/flat_set/flat_set/emplace_hint.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ iterator emplace_hint(const_iterator hint, Args&&... args);
2424
2525
2626
## 計算量
27-
一般にコンテナのサイズについて対数時間だが、新しい要素が `hint` の前に挿入された場合は償却定数時間。
2827
28+
操作の前のコンテナサイズ([`size()`](size.md))を`N`とすると、`O(N)`(挿入が行われなかった場合は`O(log N)`より小さくなる可能性がある)。
2929
3030
## 例
3131
```cpp example

0 commit comments

Comments
 (0)