我正在 Qt/C++ 中创建一个日历应用程序,我正在决定如何制作这些结构。
到目前为止我所做的:创建约会的排序向量(按升序开始日期排序)。
我想知道如果我添加一个具有 52 个位置(每周 1 个)的 std::map 并在每个位置添加一个指向该周约会指针的向量,它是否可以提高性能。获得例如一月的约会将在恒定时间内发生(有点 - 接受前 4 周的所有指针)。缺点:每次用户编辑/删除/创建约会时,该表都必须重建。
我也可以只使用向量并搜索一月份开始的第一个约会,然后寻找一月份的最后一个约会。这将在线性时间 (N) 内发生。
我猜当用户快速点击所有月份时,拥有一个可以快速填充他点击的每个月的约会的地图表比从头到尾遍历向量更有效。
也许我可以从我的向量中保留每个月的迭代器?
有什么建议吗?- 如果我把它放在错误的堆栈中,也请原谅。