1 / 1 / 4
Регистрация: 05.11.2016
Сообщений: 64
|
|||||||||||
1 | |||||||||||
Std::list Удалить элемент если тип списка собственный класс17.09.2017, 14:10. Показов 2015. Ответов 7
Метки нет Все метки)
(
Подскажите как удалить нужный элемент! И неплохо бы было узнать как обращаться к полям объекта в списке
Мне нужно сделать методы поиска, удаления, добавления абонента(класс Abonent) Класс Abonent
0
|
|
17.09.2017, 14:10 | |
Ответы с готовыми решениями:
7
Как удалить первый элемент из std::list?
Что происходит с List если удалить первый элемент? |
237 / 263 / 218
Регистрация: 14.11.2016
Сообщений: 988
|
|
17.09.2017, 15:12 | 2 |
Mentalist_, не код класса
Abonent нужно прикреплять, а код класса list .Вставка в конец Выделяете память под указатель на структуру представляющей ячейку list (обычно это Node ).Присваиваете нужный элемент ( NewNode->elem = my_elem; )next делаем 'нулевым указателем' (NewNode->next = 0; )Соединяете указатель с хвостом ( this->Tail->next = NewNode->prev; )Перебрасываете хвост на новый элемент ( this->Tail = this->Tail->next; )Удаление Если есть что удалять... Ставим указатель на нужную ячейку которую хотим удалить. Связываем крайние элементы. По указателю который устанавливали на ячейку - освобождаем память. Для поиска можно использовать итераторы и алгоритмы find_if / find и др. .
0
|
69 / 68 / 52
Регистрация: 28.10.2015
Сообщений: 388
|
||||||
17.09.2017, 15:30 | 3 | |||||
![]() Решение
0
|
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
|
17.09.2017, 15:36 | 4 |
так конечно можно предикат задавать, но это же моветон. тем более у вас емплейсы, т.е. плюсы новые. раз так - используйте лямбды.
0
|
69 / 68 / 52
Регистрация: 28.10.2015
Сообщений: 388
|
||||||
17.09.2017, 15:41 | 5 | |||||
![]()
0
|
1 / 1 / 4
Регистрация: 05.11.2016
Сообщений: 64
|
||||||
18.09.2017, 13:35 [ТС] | 6 | |||||
Класса list нету
![]() Добавлено через 9 часов 33 минуты
![]()
0
|
16915 / 9100 / 2227
Регистрация: 30.01.2014
Сообщений: 15,857
|
||||||
18.09.2017, 13:45 | 7 | |||||
Сравнить полученный итератор с
l1.end() .Добавлено через 6 минут И лучше вообще сделать так:
remove .
0
|
1 / 1 / 4
Регистрация: 05.11.2016
Сообщений: 64
|
|
18.09.2017, 16:29 [ТС] | 8 |
Скажем, а если надо посчитать абонентскую плату, как то можно работать с этим полем?
0
|
18.09.2017, 16:29 | |
Помогаю со студенческими работами здесь
8
Односвязный список: удалить элемент списка, если он чётный и следующий элемент отрицательный и нечётный Определить предикат Р(List,Х) который истинен если Х состоит из пар элементов списка List,сумма которых больше половины элементов List
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |