Re[5]: Это не правильно!
От: konst  
Дата: 05.04.02 11:33
Оценка:
почему не работает работает
не буду спорить на счёт чистоты стиля, конечно, нет никакой

вас интересовал инсёрт, вот, пожалуйста:

BOOL TCollect::Insert(int i, const void *item)
{
    if( i == -1 ) i = Count();
    if( count == limit )
    {
        int newLimit = min(limit+delta, MaxCount());
        if( newLimit == count ) return error(IDS_SE_MANYITEMS, g_hInstanceNCall), FALSE;
        char *ni;
        if( ISNULL(ni=new char[newLimit*size_it]) ) return FALSE;
        if( count != 0 ) memcpy(ni, items, count*size_it);
        delete items; items = ni; limit = newLimit;
    }
    if( i < count )    memmove(items+(i+1)*size_it, items+i*size_it, (count-i)*size_it);
    count++;
    if( item ) memcpy(items+i*size_it, item, size_it);
    else memset(items+i*size_it, 0, size_it);
    return TRUE;
}


его я не стал искажать — можно и ошибиться

и вы правы — вообще не для хранения объектов с деструктором и/или виртуальными функциями, а что делать идеальные решения не так часто встречаются
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.