【问题标题】:C++ array shift to elementC++ 数组转移到元素
【发布时间】:2012-06-08 19:21:46
【问题描述】:

好吧,标题不是最好的,但这就是我要找的。​​p>

int arr[] = {3, 4, 5, 6, 7};
int index = 2;
someFunctionICantRemember(int arr, int index);

// result {5, 6, 7, 3, 4}

我在 www.cplusplus.com 上看到了这个功能,但现在找不到了。据我所知,它是“内置”的。

【问题讨论】:

  • 我称之为循环排列
  • @mathematician1975 或循环移位。您也许可以做一个 memove,但我认为没有内置功能。
  • 当你经常这样做时,你可以使用一个整数来保存数组的“起始索引”,并且使用一些其他逻辑不必交换值。根据具体情况,代码可以通过这种方式运行得更快。

标签: c++ arrays shift


【解决方案1】:

std::rotate (#include <algorithm>)。

#include <algorithm>
#include <iterator>
std::rotate(std::begin(arr), std::begin(arr) + index, std::end(arr));

请注意,这会将数组旋转到位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多