Deutsch

программисткие курсы

04.12.05 16:09
Re: программисткие курсы
 
Wlad75 местный житель
в ответ scorpi_ 04.12.05 15:35
В ответ на:
Читайте документацию. То что Вы описываете, это std::vector

/*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Copyright (c) 1997
* Silicon Graphics Computer Systems, Inc.
*/
template <class _Tp, class _Alloc, size_t __bufsize>
void
deque<_Tp,_Alloc,__bufsize>::_M_reallocate_map(size_type __nodes_to_add,
bool __add_at_front)
{
size_type __old_num_nodes = _M_finish._M_node - _M_start._M_node + 1;
size_type __new_num_nodes = __old_num_nodes + __nodes_to_add;
_Map_pointer __new_nstart;
if (_M_map_size > 2 * __new_num_nodes) {
__new_nstart = _M_map + (_M_map_size - __new_num_nodes) / 2
+ (__add_at_front ? __nodes_to_add : 0,0);
if (__new_nstart < _M_start._M_node)
copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart,0);
else
copy_backward(_M_start._M_node, _M_finish._M_node + 1,
__new_nstart + __old_num_nodes,0);
}
else {
size_type __new_map_size =
_M_map_size + max(_M_map_size, __nodes_to_add) + 2;
_Map_pointer __new_map = _M_allocate_map(__new_map_size,0);
__new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2
+ (__add_at_front ? __nodes_to_add : 0,0);
copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart,0);
_M_deallocate_map(_M_map, _M_map_size,0);
_M_map = __new_map;
_M_map_size = __new_map_size;
}
_M_start._M_set_node(__new_nstart,0);
_M_finish._M_set_node(__new_nstart + __old_num_nodes - 1,0);
}


Это из g++ (cygwin). Так что садитесь scorpi_ - два бала (по русской системе). Куда обращаться за помощью Вы сами знаете.

"Мы появляемся на свет для того, чтобы помочь друг другу пережить эту самую жизнь, в чем бы там ни был ее смысл" (К. Воннегут)
 

Перейти на