在现代C ++中实现专门的数据结构

时间:2014-12-15 11:16:01

标签: c++ c++11 data-structures stl

(好的,所以我之前的问题被搁置太宽,所以我在这里缩小范围。)

我正在寻求参与算法编程竞赛,许多问题都取决于使用专门的数据结构,这些数据结构非常适合某种操作 - 例如,Fenwick树允许计算列表的前缀和对数时间的值。

现代 C ++中实现此类数据结构的首选方法是什么(即使用C ++ 11功能)?是否可以使用STL算法和容器而不是编写struct并手动编码每个操作?

我正在寻找Fenwick树,细分树,treaps和其他一些在IOI风格的竞赛中常用的数据结构,但是一般策略绰绰有余。

1 个答案:

答案 0 :(得分:2)

这里有一个fenwick树的实现:http://www.algorithmist.com/index.php/Fenwick_tree

它使用std :: vector作为底层容器。 可以说,方法increase可以用std::transformstd::foreach来编写。