首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在矢量中记录一系列事件

问如何在矢量中记录一系列事件
EN

Stack Overflow用户
提问于 2020-04-09 15:32:37
回答 1查看 50关注 0票数 0

我想为我的应用程序创建撤消和重做。

这是撤消重做类

代码语言:javascript
复制
 const int MAX_NUMBER_OF_UNDO = 8;

class UNDO_REDO
{
private:
    std::vector<std::unique_ptr<Sum_UndoRedo>> undo;
    int currentNumber;
public:
    UNDO_REDO();
    void AddUndo(std::unique_ptr<Sum_UndoRedo>);
    void Pop_Back_Undo();
}; 

每次执行操作时,都会将其存储在撤消向量中。

我想要记录最后8个操作,当撤销向量的大小增加超过8个时,我删除向量的第一个元素,然后将操作推回到向量,并始终保持向量的大小为8,这是最后执行的8个操作。

因为我以前从来没有做过撤销和重做,这是一个好的撤销和重做的方法吗?

由于Erase会在每次执行erase时移动所有矢量元素,我是否有其他方法可以将大小保持为8?

EN

回答 1

Stack Overflow用户

发布于 2020-04-16 18:12:59

Sean Parent有一个很好的方法来处理这个问题,作为这个视频的一部分:https://www.youtube.com/watch?v=QGcVXgEVMJg

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61116068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档