boost::mpl::push_back
ドキュメントには次のように記載されています。
push_back は、保証された O(1) の複雑さでシーケンスの最後に挿入を実行します。
コンパイル時間の複雑さですか?
boost::mpl::push_back
ドキュメントには次のように記載されています。
push_back は、保証された O(1) の複雑さでシーケンスの最後に挿入を実行します。
コンパイル時間の複雑さですか?
はい、もちろん。値ではなく、型で機能します。
Boost.MPL ライブラリは、コンパイル時のアルゴリズム、シーケンス、およびメタ関数の汎用の高レベル C++ テンプレート メタプログラミング フレームワークです。
はO(1)
、実行時の複雑さを指します。通常、時間内に実行されるプロシージャは、一定時間O(1)
内に実行されると言われます。この場合、ドキュメントには、push_backの実行に必要な時間はリストの長さに関して一定であると記載されています。つまり、その実行時間は、リストの長さに関係なく一定の固定時間になります。
一方、push_backがO(n)
複雑に実行されるとドキュメントで主張されている場合、push_backの実行時間は、リストの長さの線形関数で概算できることを示しています。ここで、リストの長さはですn
。この複雑さのカテゴリに分類される関数は、線形時間で実行されると言われています。
O(n)
ウィキペディアには、表記法[1]の優れた入門書があります。優れた入門テキストは、Cormen、Lieverson、およびRivestによる「アルゴリズムの概要」です。