ブースト:: compressed_pairはSTD ::ペアのように振る舞います。一方または両方のテンプレートパラメータが空のクラスである場合には、後押し:: compressed_pairは、少ないメモリを消費します。後押し:: compressed_pairは、空の基底クラスの最適化と呼ばれる技術を使用しています。
#include <ブースト/ compressed_pair.hpp> の#include <ユーティリティ> の#include <iostreamの> 構造体空[}。INT メイン(){ のstd ::ペア < 整数、空> P。 std :: coutの << はsizeof(P)<< はstd ::てendl; :: compressed_pair後押し < int型、空> CPを。 std :: coutの << はsizeof(CP)<< はstd ::てendl; リターン0 ; }
出力は次のようになります。
8
4
ブースト:: compressed_pairとstd ::ペア間の別の違いがあります。ブースト:: compressed_pairに格納された値は、最初のメンバー関数を介してアクセスされる()及び第二()はstd ::ペアではなく2つのindenticallyという名前のメンバ変数を使用します。