2012-05-01 11 views
0

私は[2,3,4,3,4,5,6,3]の配列を持っています。今では配列に何個の3があるか知りたいと思います。ループを通過して各要素をチェックするのではなく、それを行うための短期間の削減はありますか?配列C++の特定の要素を数えます

+0

あなたはショートカットとはどういう意味ですか?演奏方法? –

+0

サイードのポイントは非常に有効です。簡潔なソースコード、またはパフォーマンスのためのショートカットとして "ショートカット"?パフォーマンスのために、非常に大きな配列の異なる部分で並列検索の利点を得ることは明らかです。しかし、各スレッドは要素ごとに比較を行う必要があります。コンパイラがそれらを使用するかもしれないし、使用しないかもしれないという比較のループの単純なコンパイルよりも、アセンブラのコマンドの方がはるかに高速ですが、C++で直接指定できるものはありません。 –

+0

いいえという意味です。コード行の –

答えて

6

使用std::count<algorithm>から:

std::count(array.begin(), array.end(), 3) 
// or if it's a raw array: std::count(array, array + NUM_OF_ELEMENTS, 3) 
// or the most generic solution (std::{begin,end} are from C++11): 
std::count(std::begin(array), std::end(array), 3) 
関連する問題