3 / 3 / 0
Регистрация: 21.02.2016
Сообщений: 75
1

Реализация вектора, неясные моменты

28.03.2018, 00:47. Показов 662. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, хочу узнать как работают следующие конструкции:
1) Циклический или цепной вызов конструктора. Что именно происходит в этом фрагменте, как вызываются конструкторы?
C++
1
2
3
4
5
6
7
8
9
    template <typename InputIterator>
    vector(InputIterator first, InputIterator last) : vector(last - first)
    {
        std::copy(first, last, m_first);
    }
 
    vector(std::initializer_list<Type> init) : vector(init.begin(), init.end())
    {
    }
Я правильно понимаю, что при вызове первого конструктора вызывается второй, а при вызове второго первый?

2) Как использовать assign в оператор = ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
 vector& operator=(const vector& other)
    {
        if (this != &other)
            vector(other).swap(*this);
        return *this;
    }
 
    template <typename InputIterator>
    void assign(InputIterator first, InputIterator last)
    {
        vector<Type>(first,last).swap(*this);
    }
3) Не могу правильно сформулировать, но попробую как-то так, в какой момент или откуда берется int в постфиксном операторе ++ -- ? (это уже реализация списка)
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
    // префискный инкремент
    list_iterator& operator ++ ()
    {
        m_node = m_node->next;
        return *this;
    }
    
    // постфиксный инкремент
    list_iterator operator ++ (int)
    {
        list_iterator buf(*this);
        ++(*this);
        return buf;
    }
    
    list_iterator operator -- ()
    {
        m_node = m_node->prev;
        return *this;
    }
    
    list_iterator operator --(int)
    {
        list_iterator buf(*this);
        --(*this);
        return buf;
    }
Заранее большое спасибо за мои возможно некорректные и непонятные вопросы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2018, 00:47
Ответы с готовыми решениями:

Реализация вектора
Всем доброго времени суток. Я сегодня уже обращался за помощью к форумчанам, но костыли не...

Реализация вектора
Добрый день. Нужно мне реализовать функции самому push_back та pop_back. Моя реализация...

Реализация вектора
Здравствуйте друзья! Зашел в тупик после того как попытался реализовать структуру данных типа...

Реализация вектора ссылок
Доброго времени суток, дорогие форумчане! Проблема в следующем: мне дано было задание сделать игру...

0
28.03.2018, 00:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2018, 00:47
Помогаю со студенческими работами здесь

Реализация вектора из структуры
struct ad { string obraz; vector&lt;int&gt; result; }; ad a; void inputFile()

Реализация собственного класса вектора
Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и...

Реализация двусвязного списка на базе вектора
Дано задание реализовать двусвязный список на базе вектора. Насколько я понял, сам вектор...

Неясные просадки FPS в играх
Когда я играю в &quot;тяжелые&quot; игры (к примеру, недавно вышедшие Shadow of Mordor и AC:Unity),...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru