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

Удаление элементов из списка - C++

Восстановить пароль Регистрация
 
Alliance-
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 11
15.10.2013, 13:14     Удаление элементов из списка #1
Создать список. Потом удалить из него все отрицательные элементы. Если можно с комментариями некоторых действий) кстати сдавать программу мне придется на листке бумаги, так что без сильных заморочек я думаю обойдемся)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rpsv
15 / 46 / 3
Регистрация: 14.10.2013
Сообщений: 161
15.10.2013, 13:29     Удаление элементов из списка #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//
// Создаем список
//
std::vector<int> list = { -2, -1, 0, 1, 2 }
//
// В цикле проходим все элементы и удаляем отрицательные
//
for (int i = 0; i < list.size(); i++)
{
    if ( list[i] < 0 )
    {
        list.erase(list.begin() + i);
    }
}
Немного про ERASE:

C++
1
2
3
4
5
6
7
8
9
10
//
// Функция принимает ИТЕРАТОР (а не значение)
//
list.erase( list.begin() );
//
// list.begin() - это ИТЕРАТОР на начало списка (вектора), индекс = 0
//
// соответсвенно чтобы удалить элементом с индексом 6, надо получить его ИТЕРАТОР: list.begin() + 6
//
list.erase( list.begin() + 6 );
Alliance-
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 11
15.10.2013, 13:35  [ТС]     Удаление элементов из списка #3
std::vector<int> list = { -2, -1, 0, 1, 2 } - эта строчка мне немного непонятна, просто когда МЫ создаем список, у нас там указатели присутствуют, к примеру -

Struct list {

list * next;
Mt data;
*head, *p, *q;

и т.д
rpsv
15 / 46 / 3
Регистрация: 14.10.2013
Сообщений: 161
15.10.2013, 13:40     Удаление элементов из списка #4
Это уже готовая функция из библиотеки std!

Вам надо свой реализовать свой список?
Alliance-
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 11
15.10.2013, 17:52  [ТС]     Удаление элементов из списка #5
да!
Raali
15.10.2013, 18:02
  #6

Не по теме:

Цитата Сообщение от Alliance- Посмотреть сообщение
кстати сдавать программу мне придется на листке бумаги
кто это так издевается над вами?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2013, 20:27     Удаление элементов из списка
Еще ссылки по теме:

C++ Удаление элементов списка
Удаление элементов из односвязного списка списка C++
C++ Удаление элементов из списка

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

Или воспользуйтесь поиском по форуму:
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
15.10.2013, 20:27     Удаление элементов из списка #7
Цитата Сообщение от Alliance- Посмотреть сообщение
Создать список. Потом удалить из него все отрицательные элементы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <list>
#include <algorithm>
#include <iostream>
 
using namespace std;
 
int main() {
    list<int> l = { 1, -2, 3, 4, -5, 6, -7 };        // create list of integers
    l.erase(remove_if(begin(l), end(l),              // remove elements from list
                      [] (int i) { return i < 0; }), // that are negative
            l.end());
    for (int i : l)
        cout << i << ", ";
}
1, 3, 4, 6,
Yandex
Объявления
15.10.2013, 20:27     Удаление элементов из списка
Ответ Создать тему
Опции темы

Текущее время: 11:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru