2012-04-25 10 views
1

1行のコードで配列の複数の要素を設定する簡単な方法があるかどうかは疑問でした。たとえば、代わりに:最小限のコードで配列の特定の要素を設定する方法C++

int Array[10]; 
Array[4] = 100; 
Array[7] = 100; 

次のような方法がありますか?

int Array[10]; 
Array[4 & 7] = 100; 

私は上記のコードは動作しません知っているが、私は本当に私の質問を表示するための他の方法を考えることはできません。

あなたがのためにループを使用することもできます。とにかく、自分の意見を共有したい人に事前に感謝:)

+0

どのコンパイラを使用していますか? –

+0

あなたが言語委員会にいない限り、有効な言語セマンティクスは意見ではありません。 – geekosaur

+2

Array [4] =配列[7] = 100;これは単一行です。 – keety

答えて

3
int array[10]; 
array[4] = array[7] = 100; 
array[4] = 100, array[7] = 100; 
4[array] = 7[array] = 100; 

EDITそれを行うことができます幾分動的な要素の設定

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; 

もう1つのオプションは、 'm inimal」コードあなたは抽象化

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で 『DYNAMIC』言語機能を見つけることができませんいずれかの方法タイピング。あなたは要素の範囲を設定しようとしている場合

+0

+1はあいまいな最後の構文オプションのためです。 – RedX

0

あなたは、おそらくこのよう

int Array[10]; 
Array[4] = Array[7] = 100; 
0

あなたはループ

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] 
} 
+1

要素の範囲を設定しようとするなら、['std :: fill'](http://www.cplusplus.com/reference/algorithm/fill/)を使うことができます。 –

0

を使用することによってのみ、特定の番号のためにそれを行うことができますが、これを持っています完全に読み取り可能なコード:

int Array[10]; 
Array[4] = 100; 
Array[7] = 100; 

そして、あなたは "配列の複数の要素をコードの1行を指定する必要があります。確認:

int Array[10]; 
Array[4] = 100; Array[7] = 100; 

あなたはどうでしょうか?私が聞いたことのない改行の不足はありますか?

関連する問題