私はstd :: array(C++ 11)を使用しています。コンパイル時に(実行時とは逆に)サイズを固定したいので、std :: arrayを使用することを選択しています。とにかく最初のN要素だけを反復することができますか?つまり、のようなもの:C++の最初のN要素を反復する11 std :: array
std::array<int,6> myArray = {0,0,0,0,0,0};
std::find_if(myArray.begin(), myArray.begin() + 4, [](int x){return (x%2==1);});
、find_ifがFIRST奇数マーキングイテレータを返すので、これが最良の例ではありませんが、あなたは(私はこのケースでは、最初のNを検討する必要がN = 4アイデアを得ます私のstd :: arrayの要素)。
注:これに似た質問がありますが、回答にはいつも別のコンテナ(ベクトルまたはvalarrayなど)を使用する必要があります。私が早期に説明したように、固定するコンテナのサイズコンパイル時に)。
ありがとうございます!
試しましたか? – DevSolar
私はあなたの質問とあなたの目標を理解しているとは思えませんが、配列内のN個の最初の要素のすべての*奇数を取得したいですか?そのために['std :: transform'](http://en.cppreference.com/w/cpp/algorithm/transform)を使うことができます。それ以外の場合は、通常の 'for'ループを使い、N個の要素を繰り返し処理します。 –
'std :: find_if'を' 4'がパラメータである関数に置くことはできませんか? – TartanLlama