Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is an old version of boost. Click here for the latest version's documentation home page.

[Home]push_back

Synopsis

template<
      typename Sequence
    , typename T
    >
struct push_back
{
    typedef unspecified type;
};

Description

push_back performs an insertion at the end of the sequence. The algorithm returns a new sequence which contains type T as its last element. The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity.

Definition

#include "boost/mpl/push_back.hpp"

Parameters

 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceA sequence to handle the insert operation.
TA typeThe element to be inserted.

Expression semantics

 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef push_back<Sequence,T>::type s;A model of Extensible SequenceEquivalent to typedef insert< Sequence,end<Sequence>::type,T >::type s;size<s>::type::value == size<Sequence>::type::value + 1; back<s>::type is identical to T

Complexity

Amortized constant time [1].

Example

typedef vector_c<bool,false,false,false,true,true,true,false,false> bools;
typedef push_back<bools,false_>::type message;
BOOST_STATIC_ASSERT(back<message>::type::value == false);
BOOST_STATIC_ASSERT((count_if<message, equal_to<_1,false_> >::type::value == 6));

Notes

[1] The algorithm can be viewed as a notational shorcut to more verbose insert< Sequence,end<Sequence>::type,T >::type, and is provided only if the sequence can meet the stated complexity requirements.

See also

Extensible Sequence, insert, back, pop_back, push_front


Table of Contents
Last edited March 12, 2003 6:34 am