我正在尝试找到一种快速的输入方式,但我了解到将 STL 用于此类目的可能会很慢。
每当我收到键盘输入时,我都会触发一个回调。它创建一个对象(int _key, int _state, int _life)
每次我收到此回调时,我都会push_back
将对象指向我的 std::vector;
每一帧我都会检查这个向量的顶部并删除“死”输入。
可以轮询该向量以获取当时有效的任何输入,这意味着它将被频繁搜索。
优化:
-所有内存都应该是连续的,所以虽然链接列表更适合动态分配,但我应该坚持使用 STL 的向量吗?我总是在顶部添加并从底部删除,那么我应该使用什么数据结构?
-我正在考虑有一个缓冲区(第二个向量),它不断地从回调接收新输入,然后每一帧将数据从该向量复制到我的活动输入向量的顶部。由于将轮询活动向量,这是否会提高性能,因为在循环期间添加它不会浪费时间?
基本上我试图从这个向量中尽可能多地压缩性能,我可以使用一些帮助。