boost或任何其他常见的C++库是否提供semiringmonoid抽象(例如模板类)?

我有一些算法要根据这些抽象结构来表达,但到目前为止我还没有遇到任何问题。我可以编写自己的文件,但理想情况下,这些文件应位于我已经在使用的库中,例如boost。

谢谢!

最佳答案

SGI STL具有MonoidOperation概念。例如,为 MonoidOperation 实现了power函数。

Boost.Graph库也定义了Monoid concept

除了already suggested Elements of Programming以外,您还可以查看Alexander Stepanov( EoP 的作者之一)的Notes on Programming
注释是免费提供的,并且与 EoP 书有一些重叠。

EoP 注释之间存在样式差异。- EoP 很像数学教科书,但注释则更“非正式”,例如一些小故事,等等。

顺便说一下,两者都有对上面引用的函数实现的一些讨论。

附言Alexander Stepanov的精彩演讲:

  • Elements of Programming
  • STL and Its Design Principles
  • A9 lectures
  • Greatest Common Measure

  • P.P.S. Collected Papers of Alexander A. Stepanov

    07-27 13:42