首页 文章

Boost.MPL的复杂性

提问于
浏览
2

boost::mpl::push_back文件说明:

push_back在序列结束时执行插入,保证O(1)复杂度 .

编译时间复杂吗?

2 回答

  • 4

    当然是 . 它适用于类型,而不是值 .

    The Boost.MPL library is a general-purpose, high-level C++ template metaprogramming framework of compile-time algorithms, sequences and metafunctions

  • 0

    O(1) 指的是运行时的复杂性 . 通常,在 O(1) 时间内执行的程序被称为在恒定时间内执行 . 在这种情况下,文档声称push_back执行所需的时间相对于列表的长度是不变的;也就是说,它的执行时间将是一个固定的恒定时间,与列表的长度无关 .

    另一方面,如果文档声称push_back以 O(n) 复杂度执行,则表示push_back 's execution time could be approximated by a linear function of the list'的长度,此处列表的长度为 n . 属于此复杂性类别的函数据说以线性时间执行 .

    维基百科对 O(n) 符号有很好的介绍[1] . Cormen,Lieverson和Rivest的好文章是"An Introduction to Algorithms" .

相关问题