私はC++を初めて使用します。一定の長さのconst配列が欲しいのですが。これはかなり長い配列であるため、定数配列を初期化するための標準的な方法、つまり次のようになります。
const bool some_array[] = {true, false, true};
実用的ではありません。ブール値の定数配列を初期化したいのですが。私はそれを次のように実装しようとしました:
bool* sieve_of_eratosthenes(bool* n, n_length);
int main(){
bool b[500];
bool primeList[] = {sieve_of_eratosthenes(b, 500)};
}
これはほとんど機能しますが、あまりエレガントでもスペース効率も良くありません(この配列をどのように実装するかについてのコメントを受け付けています)。問題は、s_of_e()関数によって返されるブール配列の0番目の要素をfalse / zeroに明示的に設定したにもかかわらず、返される配列の0番目の要素(primeList)がtrue/1に設定されることです。
primeList[0] == 1
いつあるべきか:
primeList[0] == 0
0はプライムではないので...
なぜそれがこれをしているのかについて誰かが私に教えてもらえますか?