1行のコードで配列の複数の要素を設定する簡単な方法があるかどうか疑問に思いました。たとえば、次の代わりに:
int Array[10];
Array[4] = 100;
Array[7] = 100;
次のようなことをする方法はありますか?
int Array[10];
Array[4 & 7] = 100;
上記のコードが機能しないことは知っていますが、質問を表示する他の方法を実際に考えることはできません。とにかく、意見を共有したい人に事前に感謝します:)
int array[10];
array[4] = array[7] = 100;
array[4] = 100, array[7] = 100;
4[array] = 7[array] = 100;
編集:
要素のやや動的な設定にループを使用することができます
int i, array[10], array_element[3] = { 3, 5, 6 };
for (i = 0; array_element[i] && array[array_element[i]]; i++) array[array_element[i]] = 100;
別のオプションは、「最小限の」コードで抽象化を意味する場合、関数を定義することです
overlord::set(array, 100, "3, 5, 6");
overlord::set(array, 100, "{ 3, 5, 6 }");
overlord::set(array, "3: 200, 5: 400, 6: 500");
いずれにせよ、C++ や C には「動的」な言語機能はありません。基本的な既存の機能に抽象化を実装して、ばかげた動的型付けを取得できるようにする必要があります。
あなたはおそらくこのようにすることができます
int Array[10];
Array[4] = Array[7] = 100;
要素の範囲を設定しようとしている場合は、for ループを使用できます
int array[10];
for(int i=0; i<10; i++) {
array[i] = 100;
}
このトリックを使用して、特定の数値に対してのみ行うこともできます
int nums[2] = { 4,7 }; //Positions you wish to set
for(int i=0; i<2; i++) {
array[nums[i]] = 100; //nums[0] = 4, array[4]
//nums[1] = 7, array[7]
}
この完全に読み取り可能なコードがあります。
int Array[10];
Array[4] = 100;
Array[7] = 100;
そして、「1行のコードで配列の複数の要素を設定」したいとします。わかった:
int Array[10];
Array[4] = 100; Array[7] = 100;
しかし、なぜですか?聞いたことのない改行不足はありますか?