Форум программистов, компьютерный форум CyberForum.ru

allocate, как работает? - C++

Восстановить пароль Регистрация
 
karl 777
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 58
04.08.2013, 09:45     allocate, как работает? #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
template<class T>
    class Vec
    {
    public:
        typedef T* iterator;
        typedef const T* const_iterator;
        typedef size_t size_type;
        typedef T value_type;
        typedef T& reference;
        typedef const T& const_reference;
 
         Vec()                                                                  // Конструктор, который говорит, что вектор пустой
         {
            create();
         }
         explicit Vec(size_type n, const T& val=T())                            // Конструктор, который веделяет память на n объектов типа T
         {
             create(n, val);
         }
 
         size_type size() const                                                 // Функция определяющая размер вектора
         {
             return avail-data;
         }
 
         T& operator[](size_type i)                                             // Доступ к i-ому элементу
         {
             return data[i];
         }
         const T& operator[](size_type i) const
         {
             return data[i];
         }
 
         iterator begin()                                                       // Возвращает итератор на начало вектора
         {
             return data;
         }
         const_iterator begin() const
         {
             return data;
         }
         iterator end()                                                         // Возвращает итератор на конец вектора
         {
             return avail;
         }
         const_iterator end() const
         {
             return avail;
         }
 
         Vec(const Vec& v)                                                      // Конструктор копирования       
         {
             create(v.begin(), v.end());
         }
 
         Vec& operator=(const Vec&);                                            // Конструктор присваивания
 
         ~Vec()                                                                 // Деструктор для разрушения вектора
         {
             uncreate();                                                    
         }
 
         void push_back(const T& t)
         {
             if(avail==limit)
                 grow();
             unchecked_append(t);
         }
 
    private:
        iterator data;                                                          // Начало инициализированых элементов
        iterator avail;                                                         // Конец инициализированых элементов и начало неицилизированых
        iterator limit;                                                         // Конец неинициализированых элементов
        
        allocator<T> alloc;                                                     // Объект, управляющий выделением памяти
 
        // Средства размещения в памяти базового массива и его инициализации
        void create();
        void create(size_type, const T&);
        void create(const_iterator, const_iterator);
 
        // Средства разрушения элементов массива и освобождения памяти
        void uncreate();
 
        void grow();
        void unchecked_append(const T&);
    };
allocator<T> alloc - что это собственно такое и как работает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2013, 09:45     allocate, как работает?
Посмотрите здесь:

C++ как работает try, catch
C++ Как работает?
пишет :expected constant expression;cannot allocate an array of constant size 0 C++
C++ setprecision() не работает, или работает не так как нужно
Как называется условие if (!x) {} и как оно работает? C++
Как это работает? Я хочу спросить как работает C++ и где можно про него почитать C++
Как работает dynamic_cast C++
C++ Ошибка: cannot allocate an object of abctract type

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
04.08.2013, 11:13     allocate, как работает? #2
Allocator
Misterkat
 Аватар для Misterkat
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 83
04.08.2013, 11:48     allocate, как работает? #3
Цитата Сообщение от karl 777 Посмотреть сообщение
что это собственно такое
Ответил Nick Alte,
Цитата Сообщение от karl 777 Посмотреть сообщение
как работает
Выделяет память.
Yandex
Объявления
04.08.2013, 11:48     allocate, как работает?
Ответ Создать тему
Опции темы

Текущее время: 03:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru