zoukankan      html  css  js  c++  java
  • 泛型算法(八)之旋转算法

    1、rotate(ForwardIterator first, ForwardIterator middle, ForwardIterator last):等效于循环左移序列,使得迭代器middle所指的元素成为首元素。

        std::vector<int> c;
        c.reserve(10);
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //旋转c中的元素,使得数组下标为5的元素成为首元素
        std::rotate(c.begin(), c.begin() + 5, c.end());
        //输出c
        for (auto var : c)
        {
            std::cout << var << ",";
        }
        //打印结果:5,6,7,8,9,0,1,2,3,4        

    2、rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result):等效于循环左移序列并复制到新的存储空间,使得迭代器middle所指的元素成为首元素。

        std::vector<int> c;
        std::vector<int> result;
        c.reserve(10);
        result.resize(10);
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //复制c的旋转到result中,c本身没有改变
        std::rotate_copy(c.begin(), c.begin() + 5, c.end(), result.begin());
        //输出result
        for (auto var : result)
        {
            std::cout << var << ",";
        }
        //打印结果:5,6,7,8,9,0,1,2,3,4
  • 相关阅读:
    Python解释器相关知识
    简单了解下Flask
    Scoket编程
    __file__的作用
    jquery编写可折叠列表
    浑浑噩噩的一天
    js实现杨辉三角
    js闭包
    python读取word表格
    HTMLTestRunner报告
  • 原文地址:https://www.cnblogs.com/dongerlei/p/5141749.html
Copyright © 2011-2022 走看看