Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ищу реализацию array list на чистом c 
:(
    Опции темы
leniviy
Дата 11.2.2011, 12:15 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 552
Регистрация: 8.2.2003
Где: Спб

Репутация: 1
Всего: 5



Я ищу что-то вроде этого. alist.h: 
Код

#include <malloc.h>

#define ALIST_DECL(t, n, capa) \
    t n ## _buf[capa]; \
    size_t n ## _capa = capa; \
    size_t n ## _len = 0; \
    t *n = n ## _buf

#define ALIST_FREE(n) do { \
    if (n != n ## _buf) \
        free(n); \
    } while(0)

static void *_alist_checkbounds(void *p_a, void *p_buf, size_t len, size_t *p_capa, size_t newcapa, size_t elsize) {
    void *p_rslt = p_a;
    size_t newsize, oldsize;
    if (*p_capa < newcapa) {
        *p_capa *= 2;
        if (*p_capa < newcapa)
            *p_capa = newcapa;
        newsize = *p_capa * elsize;
        oldsize = len * elsize;
        if (p_a == p_buf) {
            p_rslt = malloc(newsize);
            memcpy(p_rslt, p_a, oldsize);
        } else {
            p_rslt = realloc(p_a, newsize);
        }
    }
    return p_rslt;
}

#define ALIST_ADD(n, el) do { \
        n = _alist_checkbounds(n, n ## _buf, n ## _len, &n ## _capa, n ## _len+1, sizeof(n[0])); \
        n[n ## _len++] = el; \
    } while(0)
...


linked list - масса, а array list не могу найти. Самому лень делать


Это сообщение отредактировал(а) leniviy - 11.2.2011, 12:55
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0370 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.