我想用c ++创建一个动画系统,我存储了具有时间和值的关键帧。这些值应在播放期间进行插值,因此我需要按时间变量进行排序。因为在插值时,我总是希望仅在最后一个和下一个关键帧之间进行插值(通常如何进行插值)。
如何存储关键帧,以便在特定时间之前和之后轻松(和快速)访问关键帧?
起初我想到了std :: map,但是我对关键帧的正确顺序有疑问......有什么想法如何做得更好?
答案 0 :(得分:1)
您可以使用std :: vector并保持关键帧的正确顺序。
假设关键帧在向量中按时间排序,则可以提取
在对数时间内具有std::lower_bound
或std::binary_search
的相关关键帧。
std::map
在内部保持元素按键排序
遵循严格的弱订购标准。所以,如果你用时间作为关键,那么你
将保持关键帧的正确顺序。
就个人而言,我会使用std :: vector。