Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
1

Ошибка в реализации вектора

12.06.2015, 05:56. Показов 434. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте, прошу помочь найти ошибку в простой реализации вектора. ошибка возникает когда вызывается pop_back(), однако совершенно не ясно в чем может быть дело:
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
template<typename T>
class Proba {
public:
    Proba(size_t size, const T& base) {
        firstElement = data.allocate(size*2);
        T* reserv = firstElement;
        for(size_t i=0; i<size; i++) {
            data.construct(reserv, base);
            reserv++;
        }
        lastElement = firstElement + size;
        endElement = firstElement + size*2;
    }
 
    T* reserve(size_t size) {
        if(size>(endElement - firstElement)) {
            size_t reserv = size - (endElement - firstElement);
            data.allocate(reserv, endElement);
            endElement+=reserv;
        }
    }
 
    void push_back(const T& base) {
        data.construct(lastElement, base);
        ++lastElement;
    }
 
    void pop_back() {
        data.destroy(--lastElement);
    }
 
    size_t capacity() const {
        return endElement - firstElement;
    }
 
    size_t size() const {
        return lastElement - firstElement;
    }
 
    T* end() const {
        return lastElement;
    }
 
    T* begin() const {
        return firstElement;
    }
    //деструктор пока не реализовал
    ~Proba() = default;
 
private:
    std::allocator<T> data;
    T* lastElement;
    T* firstElement;
    T* endElement;
};
 
int main() {
 
Proba<std::string> proba(5, "hello world");
 
//вот здесь ошибка
proba.pop_back();
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2015, 05:56
Ответы с готовыми решениями:

Ошибка с итераторами для целочисленного вектора и вектора структуры
Пытаюсь разобраться с векторами. Для динамической работы с памятью вещь, вроде, замечательная и...

Найти выражение для: вектора скорости; вектора ускорения; модуля радиус-вектора
Товарищи, помогите пожалуйста решить. Радиус-вектор материальной точки задается выражением:...

Ошибка в реализации программы
Столкнулся с проблемой в процессе написания программы. Не знаю как реализовать присвоение нулевой...

Ошибка в реализации стека
Доброго дня, господа форумчане. Стек я реализовал таким вот образом: struct stack { int* arr;...

1
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.06.2015, 05:18 2
Цитата Сообщение от tapochka Посмотреть сообщение
//вот здесь ошибка
Какая? У меня нет ошибок.
0
13.06.2015, 05:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2015, 05:18
Помогаю со студенческими работами здесь

Ошибка в реализации рекурсии
Здравствуйте, подскажите пожалуйста в чём ошибка. &quot;Неверное число параметров функции&quot; выдает в 4...

Ошибка при реализации интерфейса
Доброго дня. Пытаюсь создать список с данными для дальнейшего использования, но что-то делаю не...

Ошибка в реализации сортировки слиянием
Перевел с паскаля на vb.net сортировку вставками Вот что получилось Sub MergeSort(ByRef d() As...

Ошибка при реализации калькулятора
Собственно, пишу первую программу (банальный калькулятор), принцип его работы такой: Пользователь...

Ошибка в реализации длинной арифметики
Здравствуйте. Я скопировал с e-maxx'а и объединил всё в одну программу: #include &lt;stdio.h&gt;...

Ошибка при реализации функции
В общем, есть шаблонный класс, который реализует двусвязный кольцевой список. template &lt;class...


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

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