C ++では、通常、memset
次のようにすべての要素をゼロに設定するために使用します。
int a[5][5];
memset(a,0,sizeof(a));
すべての int 要素を1に設定したい場合はどうすればよいですか?
memset(a, 1, sizeof(a));
すべてのバイトを1に設定することはできないため、機能しません。
memset
すべてelements
( NOT JUST BYTES )を特定のvalue
.
usingは機能しますが、しばしば悪い形式と見なされるstd::fill
using に頼る必要があります。reinterpret_cast<>
#include <algorithm>
int a[5][5];
std::fill(reinterpret_cast<int*>(a),
reinterpret_cast<int*>(a)+(5*5),
1);
または、最初の要素のアドレスを取得することもできますが、これも同様に扱いにくいです:
std::fill(&a[0][0],&a[0][0]+(5*5),1);