Форум программистов, компьютерный форум, киберфорум
Наши страницы

Удаление списка указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу собрать в едино (найти среднее арифметическое делителей числа N) http://www.cyberforum.ru/cpp-beginners/thread903246.html
Как найти среднее арифметическое делителей числа N. N должно вводиться с клавы. Для среднего арифметического#include<iostream> using namespace std; int main() { float A; float sr=0.0; ...
C++ Найдите наибольший общий делитель Найдите наибольший общий делитель и наименьшее общее кратное двух натуральных чисел, учитывая что выполняется равенство : НОД(А,В)*НОК(А,В)=А*В. Тесты и результаты: 1) НОД(24,15)=3;... http://www.cyberforum.ru/cpp-beginners/thread903241.html
Вычислить записанную в тексте алгебраическую сумму (Переделать на С++) C++
Всем привет. Вот необходимо переписать этот код на С++ помогите плз: Задание 3. Дан текст, имеющий вид: «d_1-d_2+d_3-…», где d_i-цифры (n>1).Вычислить записанную в тексте алгебраическую сумму....
Вычислить записанную в тексту сумму (Переделать на С++) C++
Всем привет. Вот необходимо переписать этот код на С++ помогите плз: Задание 2. Дан текст, имеющий вид: «d_1+d_2+d_3+⋯d_n», где d_i-цифры(n>1).Вычислить записанную в тексту сумму. uses crt;...
C++ Найти все совершенные числа (С++) http://www.cyberforum.ru/cpp-beginners/thread903224.html
Найдите все совершенные числа находящиеся в интервале (900;9000)
C++ Рандомная ф-ция rand() Всем привет,объясните пожалуйста как работает рандомная ф-ция,например: rand()%10 == 5 rand()%15+2 rand()%5 == 1 rand()%5 Диапозон этих чисел и т.д подробнее

Показать сообщение отдельно
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1

Удаление списка указателей - C++

16.06.2013, 12:36. Просмотров 1120. Ответов 19
Метки (Все метки)

Здорова!
Есть задачка:
Определите список указателей, который уничтожает объекты, адресуемые этими указателями, во время уничтожения самого списка или при удалении элемента из списка операцией remove.

От как бы решение написал, но чото со списка элемент удаляется, а сам объект не уничтожается? Или так оно и должно быть?

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
#include <iostream>
using std::cout;
using std::endl;
#include <list>
using std::list;
 
 
int main()
{
    list<int*> l;
 
    int* b1=new int(4);
    int* b2=new int(5);
 
    cout <<*b1<<' '<<*b2<<endl;
 
    //добавляем указатели на объекты
    l.push_back(b1);
    l.push_back(b2);
 
    //удаляем
    cout <<*l.begin()<<' '<<b1<<endl;//адреса одинаковые
    l.remove(*l.begin());//удаление
    l.remove(*l.begin());//удаление
 
    //если через delete то удаляется
    //delete b1; //утак удалить объект
    cout <<*b1<<' '<<*b2<<endl;
 
    if(l.empty())
        cout <<"l is empty"<<endl;
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.