📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 Wiki がページ「STLの使い方(vector)」を「C++の基礎 - STL(vector)」に、リダイレクトを残さずに移動しました |
|||
| 261行目: | 261行目: | ||
} | } | ||
</source> | </source> | ||
<br><br> | |||
== 要素を反転する == | |||
std::reverseアルゴリズムは、STLアルゴリズムの一部であり、任意の範囲の要素の順序を逆にすることができる。 | |||
最初と最後のペアから始まる2つの要素を内部的に交換する。また、指定された範囲のイテレータを表す2つの引数を取る。 | |||
以下の例では、文字をvectorオブジェクトとして生成して、std::reverseアルゴリズムを使用して反転している。 | |||
<syntaxhighlight lang="c++"> | |||
#include <iostream> | |||
#include <iterator> | |||
#include <iomanip> | |||
#include <vector> | |||
int main() | |||
{ | |||
std::vector<char> arr = {"h", "o", "g", "e"}; | |||
size_t width = 4; | |||
//arr.reserve(width); | |||
std::cout << std::left << std::setw(10) << "arr: "; | |||
copy(arr.begin(), arr.end(), std::ostream_iterator<int>(cout,"; ")); | |||
std::cout << std::endl; | |||
std::reverse(arr.begin(), arr.end()); | |||
std::cout << std::left << std::setw(10) << "arr: "; | |||
copy(arr.begin(), arr.end(), std::ostream_iterator<int>(cout,"; ")); | |||
std::cout << std::endl; | |||
return EXIT_SUCCESS; | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
// 出力例 | |||
arr: h; o; g; e; | |||
arr: e; g; o; h; | |||
<br><br> | <br><br> | ||