質問: 0; for(i=4;i &primes){ for(int i=0;i primes(n,1); get_primes(primes); prt_primes(primes); return 0; } ``` ``` 2 3 5 7 2 3 5 7 ```
回答: * C系の標準入出力である`printf`などとC++系の標準入出力である`std::cout`、どちらを使うか揃えたほうがいいのでは・・・? * `get_primes`は引数経由で`vector`を返すのではなく、単に戻り値として返しましょう。NRVOくらい今どきのコンパイラならやってくれます。 * `prt_primes`はrange-based forを使うともう少しスッキリかけます。 追記のコードを見て * 負の値になりえない要素数はunsignedな型を利用しましょう。今回なら`std::size_t`。 * `n = primes.size();`は謎です。消しましょう。 * 0で埋める作業のほうが1で埋める作業より高速なので、0埋めしたあとに1に入れていくほうがいいかもしれません。