O で配列を逆順にする

C++C++Beginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、C++ プログラミング言語を使って、さまざまな手法を用いて配列を逆順にする方法を学びます。配列の逆順とは、配列の最後の要素が最初になり、最初の要素が最後になるように、配列の順序を変えることを意味します。この実験では、for ループ、組み込み関数、ポインタ、再帰、およびユーザー定義関数を含む、さまざまな方法を使って配列の逆順を実現する方法を学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/AdvancedConceptsGroup(["Advanced Concepts"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/ControlFlowGroup -.-> cpp/while_loop("While Loop") cpp/FunctionsGroup -.-> cpp/recursion("Recursion") cpp/AdvancedConceptsGroup -.-> cpp/pointers("Pointers") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") subgraph Lab Skills cpp/arrays -.-> lab-96214{{"O で配列を逆順にする"}} cpp/for_loop -.-> lab-96214{{"O で配列を逆順にする"}} cpp/while_loop -.-> lab-96214{{"O で配列を逆順にする"}} cpp/recursion -.-> lab-96214{{"O で配列を逆順にする"}} cpp/pointers -.-> lab-96214{{"O で配列を逆順にする"}} cpp/output -.-> lab-96214{{"O で配列を逆順にする"}} cpp/files -.-> lab-96214{{"O で配列を逆順にする"}} end

新しい C++ ファイルを作成する

次のコマンドを実行することで、~/project ディレクトリに reverse_array.cpp という名前の新しい C++ ファイルを作成します。

touch ~/project/reverse_array.cpp

for ループを使って配列を逆順にする

次のコードは、for ループを使って配列を逆順にする方法を示しています。

#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
    for(int i=0;i<size/2;i++){
        int temp = arr[i];
        arr[i] = arr[size-i-1];
        arr[size-i-1] = temp;
    }
}
int main(){
    int arr[]={1,2,3,4,5};
    int size = sizeof(arr)/sizeof(arr[0]);
    cout<<"Original Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    reverseArray(arr,size);
    cout<<"Reversed Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    return 0;
}

コードをコンパイルして実行するには、次のコマンドを使用します。

g++ reverse_array.cpp -o reverse_array
./reverse_array

組み込み関数を使って配列を逆順にする

次のコードは、C++ の組み込み関数を使って配列を逆順にする方法を示しています。

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int arr[]={1,2,3,4,5};
    int size = sizeof(arr)/sizeof(arr[0]);
    cout<<"Original Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    reverse(arr,arr+size);
    cout<<"Reversed Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    return 0;
}

コードをコンパイルして実行するには、次のコマンドを使用します。

g++ reverse_array.cpp -o reverse_array
./reverse_array

ユーザー定義関数を使って配列を逆順にする

次のコードは、配列を逆順にするためのユーザー定義関数を定義する方法を示しています。

#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
    for(int i=0;i<size/2;i++){
        int temp = arr[i];
        arr[i] = arr[size-i-1];
        arr[size-i-1] = temp;
    }
}
int main(){
    int arr[]={1,2,3,4,5};
    int size = sizeof(arr)/sizeof(arr[0]);
    cout<<"Original Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    reverseArray(arr,size);
    cout<<"Reversed Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    return 0;
}

コードをコンパイルして実行するには、次のコマンドを使用します。

g++ reverse_array.cpp -o reverse_array
./reverse_array

ポインタを使って配列を逆順にする

次のコードは、ポインタを使って配列を逆順にする方法を示しています。

#include <iostream>
using namespace std;
void reverseArray(int *arr, int size){
    int *first = arr, *last = arr + size - 1;
    while(first < last){
        int temp = *first;
        *first = *last;
        *last = temp;
        first++;
        last--;
    }
}
int main(){
   int arr[] = {1, 2, 3, 4, 5};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Original Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
   reverseArray(arr, size);
   cout<<"Reversed Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
   return 0;
}

コードをコンパイルして実行するには、次のコマンドを使用します。

g++ reverse_array.cpp -o reverse_array
./reverse_array

再帰を使って配列を逆順にする

次のコードは、再帰を使って配列を逆順にする方法を示しています。

#include <iostream>
using namespace std;
void reverseArray(int arr[], int start, int end){
    if(start >= end)
        return;
    int temp = arr[start];
    arr[start] = arr[end];
    arr[end] = temp;
    reverseArray(arr,start+1,end-1);
}
int main(){
   int arr[] = {1, 2, 3, 4, 5};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Original Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
   reverseArray(arr,0,size-1);
   cout<<"Reversed Array: ";
    for(int i=0;i<size;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
   return 0;
}

コードをコンパイルして実行するには、次のコマンドを使用します。

g++ reverse_array.cpp -o reverse_array
./reverse_array

まとめ

おめでとうございます!あなたは、O(n) で配列を逆順にする実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を練習することができます。