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

C++でSTLを使用して奇数および偶数である配列の要素を検索します


配列で与えられたタスクは、C++の標準テンプレートライブラリを使用して配列内の奇数要素と偶数要素の数を見つけることです。

この問題を解決するために、C ++標準テンプレートライブラリにある関数count_if()を使用しています。count_if()関数とは何ですか?

構文

count_if(LowerBound, UpperBound, function)

説明 −この関数は、指定された条件を満たす配列内の要素の数を返します。 3つのパラメータが必要です。

  • 下限 −配列またはその他のシーケンスの最初の要素を指します。
  • 上界と下界 −配列またはその他のシーケンスの最後の要素を指します。
  • 機能 −指定された条件に基づいてブール値を返します。

Input-: array[] = {2, 4, 1, 5, 8, 9}
Output-: Odd elements are: 1, 5 and 9. So, total number of odds is 3
Even elements are: 2, 4 and 8
Input-: array[] = {1, 2, 3, 4, 5, 10}
Output-: Odd elements are: 1, 3 and 5. So, total number of odds is 3
Even elements are: 2, 4 and 10. So, total number of evens is 3

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

  • 整数型の配列に整数値を入力します
  • bool関数を作成して、配列の要素が奇数かどうかを確認します。選択した要素が奇数の場合、残りの要素は偶数になります。
  • 最初と最後の要素と関数をパラメーターとして受け取る関数count_if()を呼び出します。

#include <bits/stdc++.h>
using namespace std;
// Function to check if the element is odd or even
bool check(int i) {
   if (i % 2 != 0)
      return true;
   else
      return false;
}
int main() {
   int arr[] = { 2, 10, 1, 3, 7, 4, 9 };
   int size = sizeof(arr) / sizeof(arr[0]);
   int temp = count_if(arr, arr + size, check);
   cout << "Odds are : " <<temp << endl;
   cout << "Evens are : " << (size - temp) << endl;
   return 0;
}

出力

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

Odds are: 4
Evens are: 3

  1. C ++の配列内の偶数と奇数のインデックス付き要素の絶対差?

    配列は、同じデータ型の複数の要素のコンテナです。要素のインデックスは0から始まります。つまり、最初の要素のインデックスは0です。 この問題では、2つの偶数のインデックス付き数値と2つの奇数のインデックス付き数値の絶対差を見つける必要があります。 インデックス付きの数値でも=0,2,4,6,8…。 奇数のインデックス番号=1,3,5,7,9… 絶対差は、2つの要素間の差の係数です。 たとえば、 15と7の絶対差=(| 15-7 |)=8 Input: arr = {1 , 2, 4, 5, 8} Output : Absolute difference of even number

  2. 配列内の偶数と奇数のインデックス付き要素の絶対差(C ++)?

    ここでは、配列内の奇数と偶数のインデックス付き要素の絶対差を取得する方法を説明します。絶対差は、1つのペアの差が負の場合、絶対値が取られることを示します。たとえば、番号を{1、2、3、4、5、6、7、8、9}とします。したがって、偶数の位置の要素は1、3、5、7、9(0から開始)であり、奇数の場所の要素は2、4、6、8です。したがって、偶数の位置のデータの差は| 1〜3|です。 =2、次に| 2-5 | =3、| 3-7 | =4および|4-9| =5同様に、奇数の場所の差は4になります。 アルゴリズム offEvenDiff(arr、n) begin    even :