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

C++でSTLを使用して配列とベクトルを操作する


配列とベクトルは、問題を解決するための競技プログラミングにおいて非常に重要なデータ構造です。そしてSTL(標準テンプレートライブラリ )C ++プログラミングでは、配列とベクトルの演算を実行するためのいくつかの関数を提供します。

これらの機能のいくつかを実際に見てみましょう

配列/ベクトルの合計、最小値、最大値を見つける − STLには、配列/ベクトルの合計、最大、および最小を見つけるのに役立つ関数があります。そこの機能を備えた機能

合計を求める

accumulate(startIndex, endIndex, initialSum)

配列/ベクトルの最大要素

*max_element(startIndex, endIndex)

配列/ベクトルの最小要素

*min_element(startIndex, endIndex)

配列に対して操作を実行するプログラム-

#include <bits/stdc++.h>
using namespace std;
int main(){
   int array[] = {65, 7,12, 90, 31, 113 };
   int l = sizeof(array) / sizeof(array[0]);
   cout<<"The elments of the array are : ";
   for(int i = 0; i<l; i++)
   cout<<array[i]<<"\t";
   cout<<endl;
   cout<<"The sum of all elements of the array: "<<accumulate(array, array + l, 0)<<endl;
   cout<<"The element with maximum value in array: "<<*max_element(array, array + l)<<endl;
   cout<<"The element with minimum value in array: "<<*min_element(array, array + l)<<endl;
   return 0;
}

出力

The elments of the array are : 65 7 12 90 31 113
The sum of all elements of the array: 318
The element with maximum value in array: 113
The element with minimum value in array: 7

ベクトルに対して演算を実行するプログラム-

#include <bits/stdc++.h>
using namespace std;
int main(){
   vector<int> vec= {65, 7,12, 90, 31, 113 };
   cout<<"The sum of all elments of the vector: "<<accumulate(vec.begin(), vec.end() + 1, 0)<<endl;
   cout<<"The element with maximum value in vector: "<<*max_element(vec.begin(), vec.end())<<endl;
   cout<<"The element with minimum value in vector: "<<*min_element(vec.begin(), vec.end())<<endl;
   return 0;
}

出力

The sum of all elments of the vector: 318
The element with maximum value in vector: 113
The element with minimum value in vector: 7

配列/ベクトルの要素の並べ替え-

STLには、配列/ベクトルの要素を並べ替えるために使用できる関数sort()があります。この関数は、配列/ベクトルをソートするためにクイックソート手法を使用します。

構文

sort(startIndex, endIndex)

配列の要素をソートするプログラム-

#include <bits/stdc++.h>
using namespace std;
int main(){
   int array[] = {65, 7,12, 90, 31, 113 };
   int l = sizeof(array) / sizeof(array[0]);
   cout<<"The elments of the array are : ";
   for(int i = 0; i<l; i++)
      cout<<array[i]<<"\t";
   cout<<endl;
   cout<<"\nSorting elements of the array…\n\n";
   sort(array, array+l);
   cout<<"The sorted array is : ";
   for(int i = 0; i<l; i++)
      cout<<array[i]<<"\t";
   cout<<endl;
   return 0;
}

出力

The elments of the array are : 65 7 12 90 31 113
Sorting elements of the array...
The sorted array is : 7 12 31 65 90 113

ベクトルの要素をソートするプログラム-

#include <bits/stdc++.h>
using namespace std;
int main(){
   vector<int> vec = {65, 7,12, 90, 31, 113 };
   cout<<"The elments of the vector are : ";
   for(int i = 0; i<vec.size(); i++)
      cout<<vec[i]<<"\t";
   cout<<endl;
   cout<<"\nSorting elements of the vector...\n\n";
   sort(vec.begin(), vec.end());
   cout<<"The sorted vector is : ";
   for(int i = 0; i<vec.size(); i++)
      cout<<vec[i]<<"\t";
   cout<<endl;
   return 0;
}

出力

The elments of the vector are : 65 7 12 90 31 113
Sorting elements of the vector...
The sorted vector is : 7 12 31 65 90 113

  1. C++で数値+および-を使用して配列式を評価します

    この問題では、式を示すn個の文字値で構成される配列arr[]が与えられます。私たちのタスクは、数値+および–を使用して配列式を評価することです。 式は、数字、「+」文字、「-」文字のみで構成されます。 問題を理解するために例を見てみましょう 入力: arr ={“ 5”、“ +”、“ 2”、“ -8”、“ +”、“ 9”、} 出力: 8 説明: 式は5+2-8 + 9 =8 ソリューションアプローチ: 問題の解決策は、各操作を実行してから値を返すことで見つかります。各数値は、同等の整数値に変換する必要があります。 ソリューションの動作を説明するプログラム 例 #incl

  2. アレイが回文であるかどうか、またはC++でSTLを使用していないかどうかを確認するプログラム

    n個の整数の配列arr[n]が与えられた場合、タスクは配列が回文であるかどうかを見つけることです。 C++でSTLを使用して指定されたタスクを実行する必要があります。 C ++には、STL(標準テンプレートライブラリ)の機能があります。これは、データ構造と、スタック、キュー、リストなどのいくつかの機能を提供するために使用されるC ++テンプレートクラスのセットです。これらを使用するには、知識が必要です。テンプレートクラスの。 回文は、シーケンスの前または後ろから同じように読み取られるシーケンスです。回文の簡単な例としては、-MADAM、RACECARなどがあります。配列は、以下の例のような