File tree Expand file tree Collapse file tree 5 files changed +260
-0
lines changed Expand file tree Collapse file tree 5 files changed +260
-0
lines changed Original file line number Diff line number Diff line change @@ -48,6 +48,7 @@ namespace std {
4848| [`(destructor)`](deque/op_destructor.md) | デストラクタ | |
4949| [`operator=`](deque/op_assign.md) | 代入演算子 | |
5050| [`assign`](deque/assign.md) | コンテナに値を代入する | |
51+ | [`assign_range`](deque/assign_range.md) | コンテナにRangeの要素を代入する | C++23 |
5152| [`get_allocator`](deque/get_allocator.md) | アロケータオブジェクトを取得する | |
5253
5354
@@ -92,11 +93,14 @@ namespace std {
9293| [`clear`](deque/clear.md) | 全ての要素を削除する | |
9394| [`insert`](deque/insert.md) | 任意の位置に要素を挿入する | |
9495| [`emplace`](deque/emplace.md) | 任意の位置に要素を直接構築で挿入する | C++11 |
96+ | [`insert_range`](deque/insert_range.md) | 任意の位置にRangeの要素を挿入する | C++23 |
9597| [`push_back`](deque/push_back.md) | 末尾に要素を追加する | |
9698| [`emplace_back`](deque/emplace_back.md) | 末尾に要素を直接構築で追加する | C++11 |
99+ | [`append_range`](deque/append_range.md) | 末尾にRangeの要素を追加する | C++23 |
97100| [`pop_back`](deque/pop_back.md) | 末尾要素を削除する | |
98101| [`push_front`](deque/push_front.md) | 先頭に要素を追加する | |
99102| [`emplace_front`](deque/emplace_front.md) | 先頭に要素を直接構築で追加する | C++11 |
103+ | [`prepend_range`](deque/prepend_range.md) | 先頭にRangeの要素を追加する | C++23 |
100104| [`pop_front`](deque/pop_front.md) | 先頭要素を削除する | |
101105| [`resize`](deque/resize.md) | 要素数を変更する | |
102106| [`erase`](deque/erase.md) | 指定した要素を削除する | |
Original file line number Diff line number Diff line change 1+ # append_range
2+ * deque[ meta header]
3+ * std[ meta namespace]
4+ * deque[ meta class]
5+ * function template[ meta id-type]
6+ * cpp23[ meta cpp]
7+
8+ ``` cpp
9+ template <container-compatible-range<T> R>
10+ void append_range (R&& rg); // C++23
11+ ```
12+
13+ ## 概要
14+ Rangeの要素を末尾へ追加する。
15+
16+
17+ ## テンプレートパラメータ制約
18+ 型`T`が`*ranges::begin(rg)`から`deque`コンテナへの`EmplaceConstructible`であること。
19+
20+
21+ ## 効果
22+ Range`rg`の各要素を、末尾に追加する。
23+
24+
25+ ## 戻り値
26+ なし
27+
28+
29+ ## 計算量
30+ `N =` [`ranges::distance`](../../iterator/ranges_distance.md)`(rg)`とすると、`N`に比例。Tのコンストラクタは`N`回呼ばれる。
31+
32+
33+ ## 例
34+ ```cpp example
35+ #include <deque>
36+ #include <iostream>
37+
38+ int main()
39+ {
40+ std::deque<int> d = {1, 2, 3};
41+ const int a[3] = {4, 5, 6};
42+
43+ // Rangeを末尾に追加
44+ d.append_range(a);
45+
46+ for (int i : d) {
47+ std::cout << i << " ";
48+ }
49+ std::cout << std::endl;
50+ }
51+ ```
52+ * append_range[ color ff0000]
53+
54+ ### 出力
55+ ```
56+ 1 2 3 4 5 6
57+ ```
58+
59+
60+ ## 関連項目
61+
62+ | 名前 | 説明 |
63+ | -------------------------------------------| ----------------------|
64+ | [ ` push_back ` ] ( push_back.md ) | 末尾に要素を追加する |
65+ | [ ` emplace_back ` ] ( emplace_back.md ) | 末尾に要素を直接構築で追加する |
Original file line number Diff line number Diff line change 1+ # assign_range
2+ * deque[ meta header]
3+ * std[ meta namespace]
4+ * deque[ meta class]
5+ * function template[ meta id-type]
6+ * cpp23[ meta cpp]
7+
8+ ``` cpp
9+ template <container-compatible-range<T> R>
10+ void assign_range (R&& rg); // C++23
11+ ```
12+
13+ ## 概要
14+ Rangeの各要素を再代入する。
15+
16+
17+ ## 事前条件
18+ `*this` の要素の範囲と Range`rg` の要素の範囲が重複していないこと
19+
20+
21+ ## テンプレートパラメータ制約
22+ 型`T`が`*ranges::begin(rg)`から`deque`コンテナへの`EmplaceConstructible`であること。
23+
24+
25+ ## 効果
26+ Range`rg`の各要素を、再代入する。
27+
28+
29+ ## 戻り値
30+ なし
31+
32+
33+ ## 例
34+ ```cpp example
35+ #include <deque>
36+ #include <iostream>
37+
38+ int main()
39+ {
40+ std::deque<int> d = {1, 2, 3};
41+ const int a[3] = {4, 5, 6};
42+
43+ // Rangeを再代入
44+ d.assign_range(a);
45+
46+ for (int i : d) {
47+ std::cout << i << " ";
48+ }
49+ std::cout << std::endl;
50+ }
51+ ```
52+ * assign_range[ color ff0000]
53+
54+ ### 出力
55+ ```
56+ 4 5 6
57+ ```
58+
59+
60+ ## 関連項目
61+
62+ | 名前 | 説明 |
63+ | -------------------------------------------| ----------------------|
64+ | [ ` assign ` ] ( assign.md ) | コンテナに値を代入する |
Original file line number Diff line number Diff line change 1+ # insert_range
2+ * deque[ meta header]
3+ * std[ meta namespace]
4+ * deque[ meta class]
5+ * function template[ meta id-type]
6+ * cpp23[ meta cpp]
7+
8+ ``` cpp
9+ template <container-compatible-range<T> R>
10+ iterator insert_range (const_iterator pos, R&& rg); // C++23
11+ ```
12+
13+ ## 概要
14+ Rangeの各要素を任意の位置に挿入する。
15+
16+
17+ ## テンプレートパラメータ制約
18+ 型`T`が`*ranges::begin(rg)`から`deque`コンテナへの`EmplaceConstructible`であり、かつ型`T`が`MoveConstructible`・`MoveAssignable`・`Swappable`であること。
19+
20+
21+ ## 効果
22+ Range`rg`の各要素を、`pos`の直前に挿入する。
23+
24+
25+ ## 戻り値
26+ 挿入されたRange`rg`の最初の要素を指すイテレータ。`rg`が空の場合は`pos`。
27+
28+
29+ ## 例
30+ ```cpp example
31+ #include <deque>
32+ #include <iostream>
33+ #include <iterator>
34+
35+ int main()
36+ {
37+ std::deque<int> d = {1, 2, 3};
38+ const int a[3] = {4, 5, 6};
39+
40+ // Rangeを1番目と2番目の要素の間に挿入
41+ d.insert_range(std::next(d.begin()), a);
42+
43+ for (int i : d) {
44+ std::cout << i << " ";
45+ }
46+ std::cout << std::endl;
47+ }
48+ ```
49+ * insert_range[ color ff0000]
50+
51+ ### 出力
52+ ```
53+ 1 4 5 6 2 3
54+ ```
55+
56+
57+ ## 関連項目
58+
59+ | 名前 | 説明 |
60+ | -------------------------------------------| ----------------------|
61+ | [ ` insert ` ] ( insert.md ) | 任意の位置に要素を挿入する |
62+ | [ ` emplace ` ] ( emplace.md ) | 任意の位置に要素を直接構築で挿入する |
Original file line number Diff line number Diff line change 1+ # prepend_range
2+ * deque[ meta header]
3+ * std[ meta namespace]
4+ * deque[ meta class]
5+ * function template[ meta id-type]
6+ * cpp23[ meta cpp]
7+
8+ ``` cpp
9+ template <container-compatible-range<T> R>
10+ void prepend_range (R&& rg); // C++23
11+ ```
12+
13+ ## 概要
14+ 先頭にRangeの要素を追加する。
15+
16+
17+ ## テンプレートパラメータ制約
18+ 型`T`が`*ranges::begin(rg)`から`deque`コンテナへの`EmplaceConstructible`であること。
19+
20+
21+ ## 効果
22+ Range`rg`の各要素を、先頭に追加する。
23+
24+
25+ ## 戻り値
26+ なし
27+
28+
29+ ## 計算量
30+ `N =` [`ranges::distance`](../../iterator/ranges_distance.md)`(rg)`とすると、`N`に比例。Tのコンストラクタは`N`回呼ばれる。
31+
32+
33+ ## 例
34+ ```cpp example
35+ #include <deque>
36+ #include <iostream>
37+
38+ int main()
39+ {
40+ std::deque<int> d = {1, 2, 3};
41+ const int a[3] = {4, 5, 6};
42+
43+ // Rangeを先頭に追加
44+ d.prepend_range(a);
45+
46+ for (int i : d) {
47+ std::cout << i << " ";
48+ }
49+ std::cout << std::endl;
50+ }
51+ ```
52+ * prepend_range[ color ff0000]
53+
54+ ### 出力
55+ ```
56+ 4 5 6 1 2 3
57+ ```
58+
59+
60+ ## 関連項目
61+
62+ | 名前 | 説明 |
63+ | -------------------------------------------| ----------------------|
64+ | [ ` push_front ` ] ( push_front.md ) | 先頭に要素を追加する |
65+ | [ ` emplace_front ` ] ( emplace_front.md ) | 先頭に要素を直接構築で追加する |
You can’t perform that action at this time.
0 commit comments