C++ STLにおけるdeque clear()とdeque erase()の使い方を解説
この記事では、C++ STLにおけるdeque(デック)のclear()関数とerase()関数の機能について、サンプルコードを交えながら解説します。
Deque(デック)とは
Deque(Double Ended Queue、双方向キュー)は、両端での要素の追加と削除を可能にするシーケンスコンテナです。通常のキュー(queue)データ構造では、データの挿入は末尾からのみ行い、削除は先頭からのみ行います。バス停の行列を例に考えてみましょう。行列に加わる人は必ず末尾から並び、先頭にいる人から順に乗車して行列から外れていきます。一方、双方向キュー(deque)では、両端のどちらからでもデータの挿入と削除が可能です。
deque.clear()とは
clear()関数は、deque内のすべての要素を削除し、サイズを0にするために使用されます。
構文
dequename.clear( )
使用例
入力 Deque − 96 97 98 100
出力 Deque − 空(empty)
入力 Deque − 1 2 3 4 5 6
出力 Deque − 空(empty)
実行手順
まず、dequeを宣言します。
次に、dequeの内容を出力します。
その後、clear()関数を呼び出して全要素を削除します。
上記の手順に従うことで、dequeのすべての要素を一括で削除できます。
サンプルコード
// deque.clear()関数の動作を示すC++コード
#include<iostream>
#include<deque>
using namespace std;
int main() {
// dequeの初期化
deque<int> dq = { 85, 87, 88, 89, 90 };
// dequeの内容を出力
cout << "Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
// clear()関数の呼び出し
dq.clear();
// 削除後のdequeを出力
cout << "\nNew Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << " " << *x;
return 0;
}
出力結果
上記のコードを実行すると、以下の出力が得られます。
入力 - Deque: 85 87 88 89 90 出力 - New Deque: (出力なし・空)
deque.erase()とは
erase()関数は、dequeから指定した位置、または指定した範囲の要素を削除するために使用されます。clear()がすべての要素を削除するのに対し、erase()は特定の要素だけを削除したい場合に便利です。
構文
dequename.erase(iterator position) dequename.erase(iterator first, iterator last)
サンプルコード
// deque.erase()関数の動作を示すC++コード
#include<iostream>
#include<deque>
using namespace std;
int main() {
// dequeの初期化
deque<int> dq = { 1, 2, 3, 4, 5 };
// dequeの内容を出力
cout << "Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
// 先頭の要素を削除
dq.erase(dq.begin());
// 削除後のdequeを出力
cout << "\nNew Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
出力結果
入力 - Deque: 1 2 3 4 5 出力 - New Deque: 2 3 4 5
clear()とerase()の違い
clear():dequeのすべての要素を削除し、サイズを0にします。
erase():指定した位置や範囲の要素のみを削除し、残りの要素はそのまま保持されます。
用途に応じて使い分けることで、dequeをより効率的に操作できます。
-
C++ STLのdeque::push_back()関数の使い方を徹底解説
C++ STLにおけるdequeのpush_back()関数の機能と具体的な使い方について、構文やパラメータ、サンプルコードを交えながら詳しく解説します。 deque(デック)とは dequeは「Double Ended Queue(両端キュー)」の略称で、コンテナの両端から要素の追加・削除が可能なシーケンスコンテナです。 通常のキュー(queue)データ構造では、データの挿入は末尾からのみ、削除は先頭からのみ行えます。バス停の行列をイメージすると分かりやすいでしょう。行列に人は末尾からしか加わらず、先頭にいる人から順番に乗車していきます。一方、dequeではこの挿入と削除が両端のどちらからで
-
C++ STLのdeque::resize()関数の使い方と動作を徹底解説
この記事では、C++ STLにおけるdeque(デック)のresize()関数の機能と具体的な使い方について、サンプルコードと実行結果を交えながら詳しく解説します。deque(両端キュー)とはdequeは「Double Ended Queue(両端キュー)」の略で、シーケンスコンテナの一種です。先頭と末尾の両端から要素の追加・削除ができる点が最大の特徴です。通常のキュー(queue)データ構造では、データの挿入は末尾からのみ行い、削除は先頭からのみ行います。バス停の行列をイメージすると分かりやすいでしょう。新しい人は列の末尾に並び、先頭にいる人から順に乗車して列から外れていきます。一方、deq