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

C++で増加しないベクトルの上限と下限


この記事では、C++STLで昇順ではない順序で並べ替えられた配列のvector::upper_bound()とvector ::lower_bound()について説明します。

ベクトルは動的配列に似ています。値が格納されているコンテナに値が挿入されたり、コンテナから削除されたりするたびに、サイズ自体を変更することができます。

ベクトルでは、下限は、指定された値を比較しない範囲内の最初の要素を指すイテレータを返します。上界と下界は、指定された値よりも小さい範囲のイテレータポインティング要素を返します。

入力

30 30 30 20 20 20 10 10

出力

Lower bound of 20= 3
Upper bound of 20= 6

入力

9 9 8 8 8 7 7 7 6 6 6 6

出力

Lower bound of 7= 5
Upper bound of 7= 8

戻り値

範囲の最初の要素を指すイテレータを返し、範囲の最後の要素を指すイテレータも返します。

従うことができるアプローチ

  • まず、ベクトルを初期化します。

  • 次に、ベクトル要素を昇順ではない順序で並べ替えます。

  • 次に、その下限を見つけます。

  • 次に、その上限を見つけます。

  • 最後に、両方の境界を印刷します。

上記のアプローチを使用することにより、任意のベクトルの下限と上限を見つけることができます。ベクトルをソートして下限と上限を見つける必要があります。ベクトルがソートされていない場合、その境界を見つけることができません

/ / C++ program to demonstrate the working of lower bound and upper bound
#include<iosteam.h>
#include<vector.h>
Using namespace std;
int main ( ){
   int vect[ ] = {13,13,13,16,16,16,17,17,17,17,18,18}
   vector<int> v(vect, vect+8);
   sort (v.begin( ), v.end( ), greater<int>( ));
   cout<< “ \n Sorted Vector: ”;
   for( auto i = vect.begin( ), i =! vect.end( ), ++i)
      vector<int> iterator low, up;
   low = lower_bound (v.begin( ), v.end( ), 17);
   up = upper_bound (v.begin( ), v.end( ), 17);
   cout<<” Lower bound” << (lower – v.begin( ))<< “ \n”;
   cout<< “ Upper bound “<< (upper – v,begin( ))<<”\n”;
   return 0;
}

出力

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

Sorted Vector: 18 18 17 17 17 17 16 16 16 13 13 13
Lower bound = 2
Upper bound = 6

#include<iosteam.h>
#include<vector.h>
Using namespace std;
int main ( ){
   int vect[ ] = {5,5,5,5,7,7 7,8,8,8,8,9,9,9,10,10}
   vector<int> v(vect, vect+16);
   sort (v.begin( ), v.end( ));
   cout<< “ \n Sorted Vector: ”;
   for( auto i = vect.begin( ), i =!vect.end( ), ++i)
      vector<int> iterator low, up;
   low = lower_bound (v.begin( ), v.end( ), 8);
   up = upper_bound (v.begin( ), v.end( ), 8);
   cout<<” Lower bound” << (lower – v.begin( ))<< “ \n”;
   cout<< “ Upper bound “<< (upper – v,begin( ))<<”\n”;
   return 0;
}

出力

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

Sorted Vector: 10 10 9 9 9 8 8 8 8 7 7 7 5 5 5 5
Lower bound = 5
Upper bound = 9

  1. C++での直方体の体積と表面積のプログラム

    直方体とは何ですか? 直方体は、長方形の6つの面を持つ3次元オブジェクトです。つまり、辺の長さと幅が異なります。立方体と直方体の違いは、立方体の長さ、高さ、幅が等しいのに対し、直方体ではこれら3つは同じではないことです 直方体の特性は次のとおりです- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 長さ、幅、体積が与えられた場合、タスクは直方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 直方体の表面積と体積を計算するには、式があります 表面積=2(| * w + w * h

  2. C++での立方体の体積と表面積のプログラム

    キューブとは何ですか? 立方体は、正方形の6つの面を持つ3次元オブジェクトです。つまり、同じ長さと幅の辺があります。立方体は、次のプロパティを持つ唯一の正六面体です- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 側面を考えると、タスクは立方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 立方体の表面積と体積を計算するには、次の式があります- 表面積=6*側面*側面 ボリューム=サイド*サイド*サイド 例 Input-: side=3 Output-: volume of c