【发布时间】:2014-12-15 11:16:00
【问题描述】:
(好的,所以我之前的问题因为过于宽泛而被搁置,所以我在这里缩小范围。)
我希望参加算法编程竞赛,很多问题都取决于使用非常擅长特定操作的专用数据结构 - 例如,Fenwick 树允许计算列表的前缀和对数时间的值。
在现代 C++(即使用C++11 特性)中实现此类数据结构的首选方式是什么?是否可以使用 STL 算法和容器来代替编写structs 并手动编写每个操作?
我正在寻找 Fenwick 树、段树、treaps 和其他一些在 IOI 风格的竞赛中通常有用的数据结构,但一般的策略已经绰绰有余了。
【问题讨论】:
-
为什么要特别强调现代 C++?您认为哪些新的语言结构或标准库增强功能会有所作为?
-
@PeterSchneider 我可能错了,但据我所知,C++11 引入了许多新的 STL 算法,使某些事情变得更容易,例如 some shown here。
-
@PeterSchneider 我的观点是答案最好利用 C++11 提供的一切。
标签: c++ c++11 data-structures stl