C++ で次のような関数を定義したいとします。
int sort( int a[n], int n)
事前定義された長さのない配列に対して関数に操作を実行させたい場所。どうすればいいのですか?
C++ で次のような関数を定義したいとします。
int sort( int a[n], int n)
事前定義された長さのない配列に対して関数に操作を実行させたい場所。どうすればいいのですか?
その構造を使用する場合は、配列の末尾を特定する何らかの方法が必要になります。たとえば、char 配列としての文字列は、null ターミネータを使用します。構造体の末尾を特定する方法がなければ、安全に反復処理を行うことはできません。
ポインター アプローチを使用すると、配列を反復処理できますが、反復処理中に配列の末尾を安全に判断することはできません。
int sort( int* arr )
{
// do your sorting here
}
配列の終わりを示すいくつかの要素があります。ほとんどの文字列操作はこのように行われ、文字列の末尾は '\0' でマークされます。
ただし、理想的には、単純な配列ではなく、std::vector
またはのような高レベルのオブジェクトを渡しますstd::array
。