C++ 如何翻转数组的一部分?
我需要翻转数组的一部分,保持其余部分不变。 我有一个翻转整个阵列的函数,但是。。。要使用它,我必须从数组中取出一部分,用函数翻转它,然后粘贴到它的位置上。这很不舒服,也不是很快。我需要一种工作非常快的方法 例如:C++ 如何翻转数组的一部分?,c++,arrays,C++,Arrays,我需要翻转数组的一部分,保持其余部分不变。 我有一个翻转整个阵列的函数,但是。。。要使用它,我必须从数组中取出一部分,用函数翻转它,然后粘贴到它的位置上。这很不舒服,也不是很快。我需要一种工作非常快的方法 例如: int array[10] = {1,2,3,4,5,6,7,8,9,10}; flip(array,2,6); //Flip the part between index 2 and 6 之后,阵列的外观应为: {1,2,7,6,5,4,3,8,9,10} 请帮帮我,我需要一个非
int array[10] = {1,2,3,4,5,6,7,8,9,10};
flip(array,2,6); //Flip the part between index 2 and 6
之后,阵列的外观应为:
{1,2,7,6,5,4,3,8,9,10}
请帮帮我,我需要一个非常快速的答案…标准库中有一个算法正是针对这个问题的:先作废反向BidirIt,然后作废BidirIt 下面是一个如何解决函数问题的示例
#include <algorithm>
#include <iostream>
int main() {
int array[10] = {1,2,3,4,5,6,7,8,9,10};
std::reverse(array + 2, array + 7);
for (int i = 0; i < 10; ++i) {
std::cout << array[i] << " ";
}
}
请注意,我将您示例中的索引2和6替换为2和7。这是因为std::reverse反转范围中的元素[第一个,最后一个。您在寻找吗?您可以制作一个翻页函数版本,它通常使用一对迭代器,一个开始迭代器和一个结束迭代器,并在这些迭代器定义的范围内操作;这样做的好处是允许您的函数处理任何范围,而不仅仅是数组。当然,也可以使用标准的l已经提到过的图书馆@화이트케이크 是的。大多数标准算法都使用数组。记住指针是数组的迭代器。