たとえば、5つの入力要素の配列がある場合、その値が変数にすでに設定されている場合、特定の値が何回入力されたかをどのように数えますか。特定の要素数をカウントする
INPUT:
4
4
4
1
2
click
た場合は、私がclick
は、アレイ内で使用されている回数をカウントする方法を、次に4
として定義されていますか? うまくいけばそれは理にかなっています。 ありがとう
たとえば、5つの入力要素の配列がある場合、その値が変数にすでに設定されている場合、特定の値が何回入力されたかをどのように数えますか。特定の要素数をカウントする
INPUT:
4
4
4
1
2
click
た場合は、私がclick
は、アレイ内で使用されている回数をカウントする方法を、次に4
として定義されていますか? うまくいけばそれは理にかなっています。 ありがとう
これはCスタイルの配列で行う方法です。
int i;
int count = 0;
for(i = 0; i < ARRAYSIZE; ++i)
{
if(array[i] == click)
++count;
}
ARRAYSIZEは、あなたの静的に割り当てられた配列、array
あなたの配列変数の大きさであり、あなたが探している値をクリックしてください。 count
では、変数の数が保存されます。
質問をC++とタグ付けしたので、STLを使用したC++の答えは適切です。
int num = std::count(&array[0], &array[5], click);
それがソートされていない場合は、線形検索が唯一の選択肢であるhttp://en.cppreference.com/w/cpp/algorithm/count
を参照してください。
count
を使用できます。このような
サムシング(申し訳ありませんが、私はC++での練習のうちのよ):
#include <algorithm>
void someFunction() {
int input[5];
// initialize input with some values
int num = std::count(&input[0], &input[5], 4);
}
フム。 '&array [5]'は実際に有効ですか?私は、deferencingとaddress-ofの使用が未定義の動作を引き起こすことがあることを知っています( '&(*(array + 5))')。 –
@Oli: '&array [5]'の代わりに 'array + 5'を使ってみませんか?すなわち、... int num = std :: count(array、array + 5、click); ' – Nawaz
はい、&array [5]は5要素配列に対して有効でなければなりません。サイズNの配列の場合、0からN-1の番号が付けられた要素がありますが、その要素にアクセスすると未定義の動作が発生しますが、要素Nのアドレスは有効なアドレスです。 – AAT