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

C++のSTLでペアを使用して別の配列に従って配列を並べ替える


2つの異なる配列があるとします。 C ++ STLペアクラスを使用して、一方の配列をもう一方の配列に基づいて並べ替える必要があります。 2つの配列がA1=[2、1、5、4、9、3、6、7、10、8]のようであり、別の配列がA2 =[A、B、C、D、E、F、Gのようであるとします。 、H、I、J]、出力は次のようになります:A1 =[1、2、3、4、5、6、7、8、9、10]、A2 =[B、A、F、D、C 、G、H、J、E、I]

ここでは、C++STLのペアを使用しています。ペアは、A1から1つの要素、A2から別の要素を取得することによって形成されます。次に、並べ替え機能を使用します。考慮していることの1つは、ペアの最初の要素が配列を形成し、それに応じて並べ替えが実行されることです。

#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
template <class T>
void display(T arr[], int n) {
   for (int i = 0; i < n; i++)
   cout << arr[i] << " ";
}
void sortUsingSecondArr(int A1[], char A2[], int n){
   pair<int, char> pair_arr[n];
   for (int i = 0; i < n; i++) {
      pair_arr[i].first = A1[i];
      pair_arr[i].second = A2[i];
   }
   sort(pair_arr, pair_arr + n);
   for (int i = 0; i < n; i++) {
      A1[i] = pair_arr[i].first;
      A2[i] = pair_arr[i].second;
   }
}
int main() {
   int n = 10;
   int A1[] = {2, 1, 5, 4, 9, 3, 6, 7, 10, 8};
   char A2[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};
   cout << "Before Sorting: "<<endl;
   cout << "First Array : "; display(A1, n);
   cout << "\nSecond Array: "; display(A2, n);
   sortUsingSecondArr(A1, A2, n);
   cout << "\n\nAfter Sorting: "<<endl;
   cout << "First Array : "; display(A1, n);
   cout << "\nSecond Array: "; display(A2, n);
}

出力

Before Sorting:
First Array : 2 1 5 4 9 3 6 7 10 8
Second Array: A B C D E F G H I J
After Sorting:
First Array : 1 2 3 4 5 6 7 8 9 10
Second Array: B A F D C G H J E I

  1. C++で1次元配列を使用して2次元配列をエミュレートする

    この問題では、2次元配列から1次元配列への変換について理解します。 2次元配列の要素を1次元配列に格納する方法を見ていきます。 ここで、1次元配列のサイズは、2次元配列の要素の総数であるn*mと同じです。 プログラミングでは、2次元配列を1次元配列に格納する方法が2つあります。それらは- 行メジャー 列メジャー 行メジャー: 行メジャーでは、行のすべての要素が一緒に格納されてから、次の行に移動します。 サイズnXmの2次元配列の要素にインデックス(i、j)が格納されている場合、1次元配列のインデックスはです。 (j)+(i)* m コラムメジャー: 列メジャーでは、列のすべ

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

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