transform
という名前の関数が2つの配列の最初のインデックスであるa
とb
。 b
は、配列a
を並べ替える順序を決定する番号のリストを含む配列です。配列へのC++ポインタによるエラー:unary *(has 'int)の無効な型引数、左辺のオペランドとして左辺値が必要です
void transform(int& a, int& b, const int max_size)
{
int output[max_size];
for(int i = 0; i < max_size; i++)
{
output[i] = a + (b+i);
}
for(int j = 0; j < max_size; j++)
{
(a + j) = output[j];
}
}
私はループのための第二の割り当ての左オペランドとして必要なループと左辺値の最初にコマンドで*単項のエラー、無効な型引数を取得するプログラムをコンパイルしてみてください。誰かがここでやろうとしていることを達成するためにポインタを使う正しい方法を説明できますか?
私はCスタイルの配列ではなく、std :: arrayを使用しています。あなたのアドバイスはまだ保持されているか、std:arrayより高価なものを渡していますか? – cdn
@cdn 'std :: array'を使用している場合は、配列を参照渡しするだけです。構文は少し冗長ですが、悪くはありません。'template void transform(std :: array &a、std :: array &b)'のようになり、 'max_size'に' Nは配列のサイズになります。 –
NathanOliver