我有用户定义类型的动态数组:
re.search()
然后我要删除数组的最后一个元素,将所有元素向右移动1并在索引0处插入另一个re.finditer()
。现在,我得到了:
std::vector<Pipe> pipes = {Pipe(640),Pipe(480),Pipe(320),Pipe(160)};
请注意,这是一个循环,inf的初始值为5。我从Pipe类打印值-构造函数参数存储在变量中-最后,它们应该是:800、640、480、320。>
它们分别是:800、480、320、160。 再经过一次迭代:960、640、320、160。
那是因为我只是在“移动”数组之前用另一个值替换管道[0]。 所以我的问题是我该怎么做?
对于抱歉的错误解释,我仍在学习。
答案 0 :(得分:4)
您可以使用std::rotate
将所有内容向右移动1个元素。然后为Pipe
元素分配一个新的0
。
#include <algorithm>
// Move all elements to the right by 1
std::rotate(pipes.begin(), std::next(pipes.begin()), pipes.end());
// Create a new Pipe at the beginning
pipes[0] = Pipe(inf * 160);