當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ std::rotate_copy()用法及代碼示例


C++ STL std::rotate_copy() 函數

rotate_copy() 函數是算法頭的庫函數,用於在給定範圍內將一個序列的元素向左旋轉,並將旋轉的元素複製到另一個序列中,它接受輸入序列的範圍(開始,結束),中間點,以及一個指向結果序列起始元素的迭代器。它以中間迭代器指向的元素成為新的第一個元素的方式旋轉元素。

注意:使用 rotate_copy() 函數 - 包括<algorithm>標題或者您可以簡單使用<bits/stdc++.h>頭文件。

std::rotate_copy() 函數的語法

    std::rotate_copy(
        iterator start,  
        iterator middle, 
        iterator end, 
        iterator start_result);

參數:

  • iterator start- 指向序列第一個元素的迭代器。
  • iterator middle- 一個迭代器,指向我們想要開始旋轉的中間或任何其他元素。
  • iterator end- 指向序列最後一個元素的迭代器。
  • iterator start_result- 指向結果序列中第一個元素的迭代器。

返回值: void- 它返回注意。

例:

    Input:
    //an array (source)
    int arr[] = { 10, 20, 30, 40, 50 };
    //vector
    vector<int> v(5);
    
    //rotating and copy array elements to the vector
    rotate_copy(arr + 0, arr + 2, arr + 5, v.begin());
        
    Output:
    vector elements:30 40 50 10 20

用於演示 std::rotate_copy() 函數使用的 C++ STL 程序

在這個程序中,我們有一個數組和一個向量;我們從第二個索引旋轉它的元素並複製到向量中。

//C++ STL program to demonstrate use of
//std::rotate_copy() function
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

//main code
int main()
{
    //an array (source)
    int arr[] = { 10, 20, 30, 40, 50 };

    //vector
    vector<int> v(5);

    //printing array and vector elements
    cout << "array elements..." << endl;
    for (int x:arr)
        cout << x << " ";
    cout << endl;

    cout << "vector elements begfore rotating..." << endl;
    for (int x:v)
        cout << x << " ";
    cout << endl;

    //rotating and copy array elements to the vector
    rotate_copy(arr + 0, arr + 2, arr + 5, v.begin());

    cout << "vector elements after rotating..." << endl;
    for (int x:v)
        cout << x << " ";
    cout << endl;

    return 0;
}

輸出

array elements...
10 20 30 40 50
vector elements begfore rotating...
0 0 0 0 0
vector elements after rotating...
30 40 50 10 20

參考:C++ std::rotate_copy()



相關用法


注:本文由純淨天空篩選整理自 std::rotate_copy() function with example in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。