: std::vector , push_back.
T*data, data=new T[capacity] - T. , vector , , : , .
, vector::data a void* . , , , .
template <typename T>
void vector <T> :: push_back (const T & value)
{
resize (m_size + 1);
new (reinterpret_cast <T*> (m_data) + m_size) T (value);
++ m_size;
}
template <typeame T>
void vector <T> :: pop_back ()
{
(reinterpret_cast <T*> (m_data) + m_size) -> ~ T ();
-- size;
}
source
share