私はプログラミングを学んでおり、C++は私の最初の言語です。ポインタを使って私に見せてもらうのをやめて - 私はまだそれらを理解していないので、私はこれに専念する余裕がなくなるまで気にしません。私が割り当てられた初期化後にC++配列のサイズを変更できますか?
int mergeSort()
{
const int n = 9;
int originalarray[n] = {1, 3, 5, 7, 9, 2, 4, 6, 8};
const int halfelements = (sizeof(originalarray)/sizeof(int))/2;
int farray[halfelements];
int sarray[halfelements];
for (int i = 0; i < halfelements; i++) {
farray[i] = originalarray[i];
}
for (int i = halfelements, x = 0; i < (halfelements * 2); i++, x++) {
sarray[x] = originalarray[i];
}
(私は授業を取っていないよ - ちょうど私を助けて数人の友人と学習)マージソートアルゴリズムを、アルゴリズムが実装説明ではなくて。私はこれを書き換えて、奇数と偶数の両方の整数で使えるようにしたい。私は両方の、後続の配列を反復処理するために同じ整数を使用することができるように
if ((n % 2) != 0) int farray[halfelements + 1];
:私はこのコードを追加しようとしました。 sizeof(farray)は16バイト、または4つの整数で表示されています。だからそれはサイズ変更されていません。私が知りたいことは - 初期化した後に配列のサイズを変更することは可能でしょうか?
編集:ベクターを実装するにはどうすればよいですか?反復子をループで使用して反復処理して値をコピーする方法を理解できません。
よろしくお願いいたします。私はstd :: vectorをこのアルゴリズムに実装する方法を理解しました。私のコードをデバッグするのに2時間を費やしたことはないが、私の関数ヘッダー "int mergeSort(std :: vector、int)"を見つけ出すのに "" =/ –
jkeys
が欠けていた。とにかく動的配列で?配列またはベクトルを動的にサイズ変更すると、同じパフォーマンスのペナルティが発生する> – Jason