C++で可変長配列を実装するプログラムの書き方
可変長配列とは、あらかじめサイズが固定されておらず、ユーザーの必要に応じてサイズを決められる配列のことです。プログラムの実行時にサイズを指定できるため、状況に応じた柔軟なデータ管理が可能になります。
ここでは、C++で可変長配列を実装するプログラムの例を紹介します。
サンプルコード
#include <iostream>
#include <string>
using namespace std;
int main() {
int *array, size;
cout<<"Enter size of array: "<<endl;
cin>>size;
array = new int [size];
cout<<"Enter array elements: "<<endl;
for (int i = 0; i < size; i++)
cin>>array[i];
cout<<"The array elements are: ";
for(int i = 0; i < size; i++)
cout<<array[i]<<" ";
cout<<endl;
delete []array;
return 0;
}
上記プログラムの実行結果は次のようになります。
Enter size of array: 10 Enter array elements: 11 54 7 87 90 2 56 12 36 80 The array elements are: 11 54 7 87 90 2 56 12 36 80
プログラムの解説
1. 配列サイズの入力とメモリの動的確保
まず、ユーザーから配列のサイズを入力してもらい、new 演算子を使ってそのサイズ分の int 型配列を動的に確保します。続けて、各要素の値もキーボードから入力します。
cout<<"Enter size of array: "<<endl; cin>>size; array = new int [size]; cout<<"Enter array elements: "<<endl; for (int i = 0; i < size; i++) cin>>array[i];
new int[size] のように記述することで、実行時に決定したサイズの配列をヒープ領域に確保できます。これがC++における可変長配列の基本的な実現方法です。
2. 要素の表示とメモリの解放
最後に、入力された配列の全要素を画面に表示し、delete[] を使って確保したメモリを解放してプログラムを終了します。
cout<<"The array elements are: "; for(int i = 0; i < size; i++) cout<<array[i]<<" "; cout<<endl; delete []array;
new で確保したメモリは自動的には解放されないため、使用後は必ず delete[] を呼び出すことが重要です。これを怠るとメモリリークが発生し、システム全体のパフォーマンス低下につながる可能性があります。
まとめ
C++では、new と delete[] を組み合わせることで、実行時にサイズを指定できる可変長配列を簡単に実装できます。なお、実際の開発ではメモリ管理を自動的に行ってくれる std::vector を利用するのがより安全で推奨される方法です。
-
C++プログラム:配列内のトリプレット(サイズ3の部分列)の最大積を求める方法
この記事では、n個の整数からなる配列arr[]が与えられたとき、その中から3つの要素(サイズ3の部分列=トリプレット)を選び、積が最大となる組み合わせを見つけて、その最大積を返す方法を解説します。問題例入力arr[] = {9, 5, 2, 11, 7, 4}出力693説明配列全体の中で最も大きな積となるトリプレットは「9 × 11 × 7」であり、その積は693となります。解法アプローチこの問題には複数の解き方が存在します。ここでは代表的な3つの手法を、アルゴリズムと実装例とともに紹介します。方法1:全探索(ブルートフォース)最もシンプルな方法です。配列を三重ループで走査し、考えられるすべて
-
C++で配列がビトニック配列かどうかを判定するプログラム
N個の整数からなる配列 arr[N] が与えられたとき、その配列がビトニック配列であるかどうかを判定するのが本記事のテーマです。ビトニック配列であれば「Yes its a bitonic array」と出力し、そうでなければ「No its not a bitonic array」と出力します。ビトニック配列とは、まず厳密に増加し、その後厳密に減少するような配列のことです。たとえば arr[] = {1, 2, 3, 4, 2, -1, -5} という配列は、4までは厳密に増加しており、4以降は厳密に減少しているため、ビトニック配列といえます。入力例と出力例入力arr[] = {1, 3, 5,