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

C++でSTLのreverse()関数を使ってベクトルを反転する方法

このチュートリアルでは、C++のSTL(標準テンプレートライブラリ)を使用して、ベクトル(vector)を反転させる方法について解説します。

ベクトルを反転するには、STLライブラリが提供するreverse()関数を使用します。reverse()関数は、指定された範囲内の要素の順序を逆順に入れ替える関数で、<algorithm> ヘッダーで定義されています。第1引数に範囲の先頭イテレータ、第2引数に末尾イテレータを渡すだけで、簡単に要素を反転できます。

サンプルコード

#include <bits/stdc++.h>
using namespace std;
int main(){
   // ベクトルの定義
   vector<int> a = { 1, 45, 54, 71, 76, 12 };
   cout << "Vector: ";
   for (int i = 0; i < a.size(); i++)
      cout << a[i] << " ";
   cout << endl;
   // ベクトルの反転
   reverse(a.begin(), a.end());
   cout << "Reversed Vector: ";
   for (int i = 0; i < a.size(); i++)
      cout << a[i] << " ";
   cout << endl;
   return 0;
}

コードのポイント

まず、6つの整数値を持つ vector<int> 型のベクトル「a」を定義し、その内容を順に出力します。続いて、reverse(a.begin(), a.end()) を呼び出すことで、ベクトルの先頭から末尾までの全要素が逆順に並べ替えられます。最後に、反転後のベクトルの内容を再度出力して結果を確認します。

実行結果

Vector: 1 45 54 71 76 12
Reversed Vector: 12 76 71 54 45 1

実行結果を見ると、元のベクトル {1, 45, 54, 71, 76, 12} が {12, 76, 71, 54, 45, 1} と完全に反転していることが確認できます。このように、reverse()関数を使えば、たった1行のコードでベクトルの要素順序を反転できるため、手動でループを書くよりもシンプルかつ効率的です。

  1. C++ STLのlist::reverse()関数の使い方と実例解説

    本記事では、C++におけるlist::reverse()関数の動作、構文、具体的な使用例について詳しく解説します。STLにおけるlistとはlistは、シーケンス内の任意の位置で定数時間O(1)での要素の挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、メモリの非連続的な割り当てが可能です。配列、vector、dequeと比較すると、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。listはforward_listと似ていますが、forwar

  2. STLを使ったC++のvector(ベクトル)実装プログラム

    std::vectorは、動的配列のように要素の挿入や削除に応じて自動的にサイズを変更できるコンテナで、メモリ(記憶域)の管理はコンテナ自身が行います。要素は連続したメモリ領域に配置されるため、イテレータを使ったアクセスや走査が可能です。また、先頭・中間・末尾のいずれの位置にもデータを挿入・削除できます。 使用する主な関数とその説明 v.size() : ベクトルのサイズ(現在の要素数)を返します。 v.push_back() : ベクトルの末尾に要素を挿入します。 v.pop_back() : ベクトルの末尾から要素を取り除きます。 v.capacity() : 現在ベクトルに