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

Удаление объекта из контейнера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Пример с книги не компилируется! http://www.cyberforum.ru/cpp-beginners/thread934571.html
Павловская Т.С. Пример (программа печатает таблицу значений функции г/=х2+1 во введенном диапазоне): #include <stdio.h> int main(){ float Xn, Xk, Dx; printf("Введите диапазон и шаг изменения аргумента: " ); scanf("%f%f%f", &Хn, &Хk, &Dx);
C++ получить значение пикселя Вопрос довольно стандартный наверное, но поиск в гугле не дал ничего подходящего. Как можно в mfc получить значение пикселя изображения в grayscale? http://www.cyberforum.ru/cpp-beginners/thread934560.html
Хищник-жертва C++
На прямоугольном поле случайным образом размещаются "хищники" и "жертвы", после чего они поочередно делают ходы. Ход жертвы – случайное перемещение на соседнюю клетку, раз в несколько ходов жертва порождает еще одну жертву на соседней клетке. Ход хищника – уничтожение жертвы на соседней клетке, если это возможно, иначе –случайное перемещение на соседнюю клетку. Уничтожив несколько жертв, хищник...
Как вытащить значение с enum? C++
У меня перечисленны в enum допустимые типы автомобилей и потом количество мест для каждого из них. Как правильно в классе написать конструктор, который будет по заданомму типу автомобиля брать количество мест для посадки? enum CarType { Car_Gaz, Car_Limo, Car_Jip, Car_Audi8, Car_Oka, Car_MAX,
C++ Реализация бинарного дерева поиска http://www.cyberforum.ru/cpp-beginners/thread934510.html
Задача: Реализация бинарного дерева поиска Компилируется нормально, а при запуске выбивает ошибку : "Необработанное исключение по адресу 0x00C83867 в FindBinaryTree.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCDCD." Помогите пожалуйста, занялся изучением алгоритмов и структур данных просто #include <iostream> using namespace std; struct Node {
C++ Вышел за пределы В MVS я первый раз пытаюсь рондомно вывести массив, но выводит ошибку и указывает на цикл, где я там мог выйти за пределы? using namespace std; int main() { srand(time(NULL)); const int n=10; int M; for (int i=0; i<n; i++) { подробнее

Показать сообщение отдельно
fuelcs
12 / 12 / 0
Регистрация: 23.01.2013
Сообщений: 143
07.08.2013, 16:27  [ТС]     Удаление объекта из контейнера
Цитата Сообщение от Olivеr Посмотреть сообщение
он будет указывать бог знает на что
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
#include <iostream>
#include <deque>
 
class Class
{
public:
    Class()
    {
        a=10;
    }
    Class* B (std::deque<Class> &deq , unsigned index)
    {
        if (!deq.empty())
        {
            std::cout << this << "\n";//выдаст одну и ту же ячейку
            deq.erase(deq.begin()+index);
            std::cout << this << "\n";//выдаст одну и ту же ячейку
            B(deq,0);
        }
        else
        {
            std::cout << "end" << "\n";
            std::cout << a << "\n";//напечатает 10
        }
        return this;
    }
private:
    int a;
};
 
void foo (std::deque<Class> &deq)
{
    Class temp;
    deq.push_back(temp);
}
 
int main()
{
    std::deque<Class> deq;
    Class *ptr;
 
    foo(deq);
    ptr=deq[0].B(deq,0);
    
    ptr->B(deq,0);//тоже сработает - напечатает end 10;
    return 0;
}
в результате мы работаем с объектом (через указатель) после удаления с контейнера - что это утечка памяти deque?

И еще одно, для
C++
1
deq.push_back(temp);
конструктор копии не обязателен? Правильно?
 
Текущее время: 18:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru