Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.66/35: Рейтинг темы: голосов - 35, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 50
1

Реализация вектора

10.01.2016, 11:24. Показов 6831. Ответов 80

Добрый день. Нужно мне реализовать функции самому push_back та pop_back.
Моя реализация push_back. А от как реализовать pop_back я незнаю. Там нужно только удалить останий елемент. Но как это сделать? Подскиже.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template <typename T, typename Allocator>
void Vector<T, Allocator>::push_back(const T& value)
{
    if (m_size == m_capacity)
    {
        const size_type capacity = 2 * m_capacity;
        pointer begin = m_allocator.allocate(capacity);
 
        UninitializedCopy(m_begin, m_begin + m_size, begin);
        deallocate();
 
        m_begin = begin;
        m_capacity = capacity;
    }
 
    m_allocator.construct(m_begin + m_size, value);
    ++m_size;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2016, 11:24
Ответы с готовыми решениями:

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

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

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

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

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
80
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 50
15.01.2016, 11:51  [ТС] 81
Нашел ошибку но всеравно не правильно работает:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Vector<char, Allocator<char>> v8;
    v8.reserve(4);
    v8.push_back('b');
    v8.push_back('e');
    v8.push_back('h');
    v8.push_back('m');
    Vector<char, Allocator<char>>::reverse_iterator itEnd1(v8.rend());
    Vector<char, Allocator<char>>::reverse_iterator it1(v8.rbegin());
 
    for (itEnd1 = v8.rbegin(); it1 != itEnd1; --itEnd1)
        std::cout << "itEnd1: " << *itEnd1 << "\n";
    std::cout << "\n";
 
    for (it1 = v8.rbegin(); it1 != itEnd1; ++it1)
        *it1 = 'd';
 
    for (it1 = v8.rbegin(); it1 != itEnd1; ++it1)
        std::cout << "it1: " << *it1 << "\n";
Добавлено через 1 минуту
ForEveR, тогда я не понял как пройтись с конца на перед без itEnd

Добавлено через 6 минут
ForEveR, itEnd1 - это конец

Добавлено через 1 минуту
Все сделал)))
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Vector<char, Allocator<char>> v8;
    v8.reserve(4);
    v8.push_back('b');
    v8.push_back('e');
    v8.push_back('h');
    v8.push_back('m');
    Vector<char, Allocator<char>>::reverse_iterator it1(v8.rend());
    Vector<char, Allocator<char>>::reverse_iterator itEnd1(v8.rbegin());
 
    for (itEnd1 = v8.rbegin(); it1 != itEnd1; ++itEnd1)
        std::cout << "itEnd1: " << *itEnd1 << "\n";
    std::cout << "\n";
 
    for (it1 = v8.rbegin(); it1 != itEnd1; ++it1)
        *it1 = 'd';
 
    for (it1 = v8.rbegin(); it1 != itEnd1; ++it1)
        std::cout << "it1: " << *it1 << "\n";
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2016, 11:51

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

Реализация функций reserve и clear для вектора
Мне нужно самой написать реализацию. От что у меня есть: template&lt;typename T&gt; void...

Как обозначить значения внутри вектора для другого вектора итератором?
Например, в одном векторе есть числа 1, 3, 4. В другом векторе их 5: 25 95 45 65 75. Как сделать...

Найти сколько элементов первого вектора совпадают с элементами второго вектора
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;vector&gt; #include &lt;set&gt; using namespace std; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.