配列から特定の要素を削除する方法を紹介します。
1. listを使った方法
配列はサイズが動的に変更されないため、要素を削除するには新しい配列を作成する必要があります。
listは動的にサイズを変更できるため、配列をlistに変換して要素を削除して配列に変換する方法があります。
以下の例は配列から 30
を削除します。
#include <iostream>
#include <list>
int main() {
int arr[] = {10, 20, 30, 40};
// Convert array to list
std::list<int> list(std::begin(arr), std::end(arr));
// Remove an element
list.remove(30);
// Convert list to array
int newArr[list.size()];
std::copy(list.begin(), list.end(), newArr);
for (int i: newArr) {
std::cout << i << ' ';
}
return 0;
}
Output:
10 20 40
2. remove_if() で複数の要素を削除する
リストの remove_if()
を使うと、特定の条件に一致する要素をすべて削除できます。
以下の例は remove_if()
にラムダ式を渡し、30 未満の要素をすべて削除します。
#include <iostream>
#include <list>
int main() {
int arr[] = {10, 20, 30, 40};
// Convert array to list
std::list<int> list(std::begin(arr), std::end(arr));
// Remove elements
list.remove_if([](int value){ return value < 30; });
// Convert list to array
int newArr[list.size()];
std::copy(list.begin(), list.end(), newArr);
for (int i: newArr) {
std::cout << i << ' ';
}
return 0;
}
Output:
30 40
Related Posts
- [C++] 配列をリストに変換する
- [C++] 配列から特定の要素を削除する
- [C++] vector すべての要素の合計を計算する
- [C++]配列に特定の要素があることを確認する
- [C++] 2つの配列が同じかどうかを比較
- [C++] 二次配列のコピー方法
- [C++] 配列をコピーする方法 (copy, memcpy)
- [C++]関数の引数として配列を渡す
- [C++] vector すべての値の平均計算
- [C++] vectorを文字列に変換する
- [C++]配列内の要素のインデックスを検索する
- [C++]配列の重複要素を見つける
- [C++]配列の重複要素を削除する
- [C++] 配列の順序を逆に反転
- [C++] char配列を文字列に変換する
- [C++] stringをchar配列に変換する
- [C++]文字列を逆に反転
- [C++] vectorの重複要素を削除する
- [C++] 2つの配列を1つの配列にまとめる
- [C++] 配列の長さ、サイズを取得する方法
- [C++]配列で最大値、最小値を検索する(3つの方法)