C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で配列内の個別の要素をカウントします


反復要素を含む任意のサイズのソートされていない配列が与えられ、タスクは配列内の個別の要素の数を計算することです。

配列は、同じタイプの要素の固定サイズの順次コレクションを格納できる一種のデータ構造です。配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。

Input− int arr[] = {1, 1, 2, 3, 3, 4, 4}
Output − count is 4

説明 −指定された配列には4つの異なる要素があり、それらは1、2、3、4ですが、反復要素が含まれているため、配列のサイズは7であり、重複を削除してから配列要素をカウントすることがタスクでした。

>
Input − int arr[] = {1, 2, 3, 4, 5, 5, 5, 5}
Output − count is 5

説明 −指定された配列には5つの異なる要素があり、それらは1、2、3、4、5ですが、反復要素が含まれているため、配列のサイズは8であり、重複を削除してから配列要素をカウントすることがタスクでした。

以下のプログラムで使用されているアプローチは次のとおりです

sort function()の使用

  • たとえば、arr []

    の配列を作成します
  • 配列の要素ごとに整数値を返すlength()関数を使用して、配列の長さを計算します。

  • 並べ替え関数を呼び出し、配列と配列のサイズをパラメーターとして渡します。

  • 個別の要素の数を格納する一時変数を取ります。

  • iが配列のサイズより小さくなるまで、iから0までのループを開始します

  • ループ内で、i の間に実行します

  • while内で、iの値をインクリメントします

  • そして、forの内部で、countの値をインクリメントします

  • 返品数

  • 結果を印刷します。

並べ替えなし

  • たとえば、arr []

    の配列を作成します
  • 配列の要素ごとに整数値を返すlength()関数を使用して、配列の長さを計算します。

  • 個別の要素の数を格納する一時変数を取ります。

  • iが配列のサイズより小さくなるまで、iから1でループを開始します

  • ループ内で、jを0に設定し、jを0に設定し、jをi未満にして、jを1でインクリメントする別のループを開始します

  • このループ内で、arr [i] =arr[j]かどうかを確認してから中断します

  • このループ内で、i =jかどうかを確認してから、カウントを1ずつ増やします

  • 返品数

  • 結果を印刷します。r

並べ替えあり

#include <algorithm>
#include <iostream>
using namespace std;
int distinct_elements(int arr[], int n){
   // Sorting the array
   sort(arr, arr + n);
   // Traverse the sorted array
   int count = 0;
   for (int i = 0; i < n; i++){
      // Moving the index when duplicate is found
      while (i < n - 1 && arr[i] == arr[i + 1]){
         i++;
      }
      count++;
   }
   return count;
}
// Main Function
int main(){
   int arr[] = { 3, 6, 5, 8, 2, 3, 4 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout <<"count is "<<distinct_elements(arr, n);
   return 0;
}

出力

上記のコードを実行すると、次の出力が得られます-

count is 6

並べ替えなし

#include <iostream>
using namespace std;
int countDistinct(int a[], int size){
   int i, j, count = 1;
   for (i = 1; i < size; i++){
      for (j = 0; j < i; j++){
         if (a[i] == a[j]){
            break;
         }
      }
      if (i == j){
         count++;
      }
   }
   return count;
}
// Main function
int main(){
   int a[] = { 3, 6, 5, 8, 2, 3, 4 };
   int size = sizeof(a) / sizeof(a[0]);
   cout << "count is "<<countDistinct(a, size);
   return 0;
}

出力

上記のコードを実行すると、次の出力が得られます-

count is 6

  1. C ++のソートされた配列の絶対的な個別のカウント?

    配列は、同じデータ型の要素のコレクションです。 ソートされた配列 は、昇順または降順の順序で要素が格納されている配列です。 明確な数は、同じではない要素の数です。 絶対個別カウントは、要素の絶対値、つまり符号のない要素(符号なしの値)の個別カウントです。 このプログラムでは、ソートされた配列で絶対的な個別のカウントを見つけます。つまり、配列の各要素の絶対値を考慮した場合、個別の値の数をカウントします。 たとえば、 Input : [-3 , 0 , 3 , 6 ] Output : 3 配列には3つの異なる絶対値があり、要素は0、3、および6です。 これを解決するために、さまざまな

  2. Pythonで配列内の個別の要素をカウントする

    Pythonのリストには、重複する要素が含まれている可能性があります。リストの長さを数えると、重複する要素を含む全長が得られます。ただし、この記事では、リスト内の個別の要素または一意の要素の総数を取得する方法を説明します。 例 以下の例では、collectionsモジュールのcounter()を使用しています。このモジュールでは、Counterはハッシュ可能なオブジェクトをカウントするためのdictサブクラスです。 Counterは、要素がディクショナリキーとして格納され、それらのカウントがディクショナリ値として格納される順序付けられていないコレクションです。したがって、元のリストから、キー