size.rst
来自「Boost provides free peer-reviewed portab」· RST 代码 · 共 115 行
RST
115 行
.. Sequences/Intrinsic Metafunctions//size.. Copyright Aleksey Gurtovoy, David Abrahams 2007... Distributed under the Boost.. Software License, Version 1.0. (See accompanying.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)size====Synopsis--------.. parsed-literal:: template< typename Sequence > struct size { typedef |unspecified| type; };Description-----------``size`` returns the number of elements in the sequence, that is, the number of elements in the range [``begin<Sequence>::type``, ``end<Sequence>::type``).Header------.. parsed-literal:: #include <boost/mpl/size.hpp>Model of--------|Tag Dispatched Metafunction|Parameters----------+---------------+-----------------------+-----------------------------------------------+| Parameter | Requirement | Description |+===============+=======================+===============================================+| ``Sequence`` | |Forward Sequence| | A sequence to query. |+---------------+-----------------------+-----------------------------------------------+Expression semantics--------------------For any |Forward Sequence| ``s``:.. parsed-literal:: typedef size<s>::type n; :Return type: |Integral Constant|.:Semantics: Equivalent to .. parsed-literal:: typedef distance< begin<s>::type,end<s>::type >::type n;:Postcondition: ``n::value >= 0``.Complexity----------The complexity of the ``size`` metafunction directly depends on the implementation of the particular sequence it is applied to. In the worst case, ``size`` guarantees a linear complexity.If the ``s`` is a |Random Access Sequence|, ``size<s>::type`` is an |O(1)| operation. The opposite is not necessarily true |--| for example, a sequence class that models |Forward Sequence| might still give us an |O(1)| ``size`` implementation.Example-------.. parsed-literal:: typedef list0<> empty_list; typedef vector_c<int,0,1,2,3,4,5> numbers; typedef range_c<int,0,100> more_numbers; BOOST_MPL_ASSERT_RELATION( size<list>::value, ==, 0 ); BOOST_MPL_ASSERT_RELATION( size<numbers>::value, ==, 5 ); BOOST_MPL_ASSERT_RELATION( size<more_numbers>::value, ==, 100 );See also--------|Forward Sequence|, |Random Access Sequence|, |empty|, |begin|, |end|, |distance|
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?