C++中的半环或幺半群是否有标准的抽象?

Jas*_*git 13 c++ math boost monoids

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

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

谢谢!

Evg*_*yuk 10

SGI STL拥有 MonoidOperation概念.例如,为 MonoidOperation实现了函数.

Boost.Graph库还定义了 Monoid概念.

除了已经建议 的编程元素之外,您还可以查看Alexander Stepanov(EoP的作者之一)的编程注释. 备注是免费提供的,与EoP书籍有一些重叠.

EoPNotes之间存在风格差异- EoP非常简洁,就像数学教科书一样,但Notes更"非正式" - 有一些小故事等.

顺便说一下,两者都讨论了上面引用的功率函数实现.

PS亚历山大·斯捷潘诺夫有很好的会谈:

PPS 收集了Alexander A. Stepanov的论文


tem*_*def 7

据我所知,C++标准库没有围绕这些结构的任何抽象.然而,STL的发明者亚历克斯·斯捷潘诺夫写了一本名为"编程元素"的书,其中他编写了各种有用的函数,这些函数对幺半群,组,二元运算符,一元函数等起作用.它不一定是标准,但可能是进一步探索的良好起点.

希望这可以帮助!