我想旋转嵌套数组。让我们说
double * buffer[2];
buffer[0] = new double[5];
buffer[1] = new double[5];`
我不想旋转整个缓冲区,而是想只旋转双数组。可以使用std::rotate
中的<algorithm>
吗?
我知道一个简单的数组应该是什么样子:
#include <iostream>
#include <algorithm>
#include <iterator>
int main() {
int a[5] = {0, 1, 2, 3, 4};
for(int x : a) std::cout << x << ' ';
std::cout << std::endl << std::endl;
for(int i = a[4] + 1;; ++i) {
std::rotate( std::begin( a ), std::next( std::begin( a ) ), std::end( a ) );
a[4] = i;
for(int x : a) std::cout << x << ' ';
std::cout << std::endl << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
return 0;
}
它实际上只是一个简单的轮换,我想做什么。我想&#34;转移&#34;数组和&#34;追加&#34;最后一个新元素。
我试过像
这样的东西[...]
std::rotate( std::begin( buffer[i] ), std::next( std::begin( buffer[i] ) ), std::end( buffer[i] ) );
[...]
我将不胜感激任何帮助:)