C++ <list> push_front 関数
push_frontlist で使用されるリンクリストの先頭に要素を追加する関数であり、リンクリストの特徴的な操作の1つです。
push_frontメンバ関数であり、~に使用されますリンクリスト (list)の先頭新しい要素を追加します。
vector と異なり、list先頭への要素挿入の時間計算量は O(1) であり、非常に効率的です。
単語の意味: pushは「押し込む」という意味で、frontは「前」を意味し、合わせると「前に押し込む」となり、とても分かりやすいです。
基本構文とパラメータ
push_frontコンテナクラスのメンバ関数であり、呼び出しにパラメータは不要です。
構文形式
void push_front(const T& value); void push_front(T&& value); // C++11 之后(支持右值)
パラメータの説明
- パラメータ:
value- 型:コンテナ定義時に指定した要素型と同じ
- 説明:コンテナの先頭に追加したい値。
関数の説明
- 戻り値:
void(戻り値はありません)。 - 効果:コンテナの
size()は 1 増えます。新しい要素はリンクリストの最初の要素になります。
例
例を通して徹底的にマスターしましょうpush_frontの使い方を。
例1:基本用法 - 先頭に要素を追加
例
#include <iostream>
#include <list>
int main() {
std::list<int> numbers = {20, 30, 40};
std::cout << "元の list: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// 先頭に要素を追加
numbers.push_front(10);
std::cout << "push_front(10) 後: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
#include <list>
int main() {
std::list<int> numbers = {20, 30, 40};
std::cout << "元の list: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// 先頭に要素を追加
numbers.push_front(10);
std::cout << "push_front(10) 後: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
実行結果の予想:
原始 list: 20 30 40 push_front(10) 后: 10 20 30 40
コードの解説:
push_front(10)10 をリンクリストの先頭に追加し、最初の要素にします。例2:リンクリストの構築
使用してpush_front先頭から簡単にリンクリストを構築できます。
例
#include <iostream>
#include <list>
int main() {
std::list<int> data;
// 先頭に順に追加すると、最終的な順序は追加順と逆になります
data.push_front(5);
data.push_front(4);
data.push_front(3);
data.push_front(2);
data.push_front(1);
std::cout << "構築したリンクリスト: ";
for(int n : data) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
#include <list>
int main() {
std::list<int> data;
// 先頭に順に追加すると、最終的な順序は追加順と逆になります
data.push_front(5);
data.push_front(4);
data.push_front(3);
data.push_front(2);
data.push_front(1);
std::cout << "構築したリンクリスト: ";
for(int n : data) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
実行結果の予想:
构建的链表: 1 2 3 4 5
コードの解説:
- 毎回
push_front新しい要素を先頭に追加します。 - 最終的なリンクリストの順序は 1 -> 2 -> 3 -> 4 -> 5 です。
その他の拡張
C++ コンテナクラス <list>