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

C++のターゲット値または条件に一致するベクトル内の要素をカウントします


ベクトルが与えられ、タスクは、ターゲット値または条件に一致するベクトル内の要素の数を計算することです。

ベクトルは、サイズを変更できるシーケンスコンテナです。コンテナは、同じタイプのデータを保持するオブジェクトです。シーケンスコンテナは、要素を厳密に線形シーケンスで格納します。

ベクターは要素を連続したメモリ位置に格納し、添え字演算子[]を使用して任意の要素に直接アクセスできるようにします。配列とは異なり、ベクトルは実行時に必要に応じて縮小または拡大できます。ベクトルの保存は自動的に処理されます。

実行時に縮小および拡張機能をサポートするために、ベクターコンテナーは、可能な拡張に対応するために追加のストレージを割り当てる場合があります。したがって、コンテナーの実際の容量はサイズよりも大きくなります。したがって、アレイと比較して、ベクターはストレージを管理し、効率的な方法で動的に拡張する機能と引き換えに、より多くのメモリを消費します。

Input − vector vec = {1, 2, 3, 4, 4, 4, 4}
      Target = 4
Output − count is: 4

説明 −指定されたベクトルでは、ターゲットは4回発生しているため、カウントは4です

Input − vector vec = {1, 2, 3}
      Target = 4
Output − count is: 0

説明 −指定されたベクトルでは、ターゲットは0回発生しているため、カウントは0です

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

  • ベクトルを入力し、ベクトル型変数に格納します。たとえば、vec

  • 目標値を整数値として設定します

  • カウントを格納する一時変数を取ります

  • C ++ STLで使用可能な組み込みのカウント関数を呼び出し、関数呼び出しのターゲットであるvec.begin()、vec.end()を渡します

  • 結果を印刷します。

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main(){
   vector<int> myvector{ 1, 2, 3, 4, 4, 4, 4, 4 };
   int target = 4;
   int res = count(myvector.begin(), myvector.end(), target);
   cout << "Target is: " << target << "\nCount is: " << res << endl;
   return 0;
}

出力

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

Target is: 4
Count is: 5

  1. C++で最も近い二分探索木値II

    二分探索木とターゲット値があるとします。そのBSTで、ターゲットに最も近いk個の値を見つける必要があります。目標値は浮動小数点数であることに注意する必要があります。 kは常に有効であり、k≤合計ノードであると想定できます。 したがって、入力が次のような場合 target =3.714286、k =2の場合、出力は[4,3]になります。 これを解決するには、次の手順に従います- 関数pushSmaller()を定義します。これにより、ノード、スタックst、およびターゲットが取得されます。 ノードが存在しない場合は、-を実行します ノードの値が<ターゲットの場合、-

  2. C ++ベクトルの要素を合計する方法は?

    C ++ベクトルのすべての要素の合計は、std::accumulateメソッドによって非常に簡単に実行できます。 ヘッダーで定義されます。ベクトルに指定されているすべての値を指定された合計に累積します。 アルゴリズム Begin    Declare v of vector type.       Initialize some values into v vector in array pattern.       Print “Sum of all the elements are:”.