📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 263行目: | 263行目: | ||
<br><br> | <br><br> | ||
== | == 要素の反転 == | ||
<code>std::reverse</code>アルゴリズムは、STLアルゴリズムの一部であり、任意の範囲の要素の順序を逆にすることができる。<br> | <code>std::reverse</code>アルゴリズムは、STLアルゴリズムの一部であり、任意の範囲の要素の順序を逆にすることができる。<br> | ||
最初と最後のペアから始まる2つの要素を内部的に交換する。また、指定された範囲のイテレータを表す2つの引数を取る。<br> | 最初と最後のペアから始まる2つの要素を内部的に交換する。また、指定された範囲のイテレータを表す2つの引数を取る。<br> | ||
| 276行目: | 276行目: | ||
int main() | int main() | ||
{ | { | ||
std::vector<char> arr = { | std::vector<char> arr = {'h', 'o', 'g', 'e'}; | ||
//size_t width = 4; | //size_t width = 4; | ||
| 282行目: | 282行目: | ||
std::cout << std::left << std::setw(10) << "arr: "; | std::cout << std::left << std::setw(10) << "arr: "; | ||
copy(arr.begin(), arr.end(), std::ostream_iterator<int>(cout,"; ")); | copy(arr.begin(), arr.end(), std::ostream_iterator<int>(std::cout,"; ")); | ||
std::cout << std::endl; | std::cout << std::endl; | ||
| 298行目: | 298行目: | ||
arr: h; o; g; e; | arr: h; o; g; e; | ||
arr: e; g; o; h; | arr: e; g; o; h; | ||
<br><br> | |||
== 要素の回転 == | |||
<code>std::rotate</code>は、要素を左にシフトして、ベクトル境界の外側に移動された要素をラップする。<br> | |||
<code>std::rotate</code>は<code>ForwardIt</code>イテレータの3つの引数を取り、第2引数が指す要素が、新しく生成されたリストの最初の位置に移動するように回転する。<br> | |||
<syntaxhighlight lang="c++"> | |||
#include <iostream> | |||
#include <iterator> | |||
#include <iomanip> | |||
#include <vector> | |||
int main() | |||
{ | |||
std::vector<int> arr = {1, 2, 3, 4, 5, 6}; | |||
std::cout << std::left << std::setw(10) << "arr: "; | |||
copy(arr.begin(), arr.end(), std::ostream_iterator<int>(std::cout, "; ")); | |||
std::cout << std::endl; | |||
std::rotate(arr.begin(), arr.begin() + (arr.size() / 2), arr.begin() + arr.size()); | |||
std::cout << std::left << std::setw(10) << "arr: "; | |||
copy(arr.begin(), arr.end(), std::ostream_iterator<int>(std::cout, "; ")); | |||
std::cout << std::endl; | |||
return EXIT_SUCCESS; | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
// 出力例 | |||
arr: 1; 2; 3; 4; 5; 6; | |||
arr: 4; 5; 6; 1; 2; 3; | |||
<br><br> | <br><br> | ||