-18 / 1 / 0
Регистрация: 30.09.2015
Сообщений: 422
1

Удалить из списка элементы меньшие 10

01.11.2016, 16:03. Показов 1518. Ответов 9
Метки нет (Все метки)

Удалить из списка элементы меньшие 10

Добавлено через 19 минут
нужно в этой задаче создать список и чтобы в нем удалились элементы <10
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2016, 16:03
Ответы с готовыми решениями:

Удалить все элементы масива меньшие, чем элемент массива, расположенный слева от максимального
В массиве A=(a1, а2, ..., аn) удалить все элементы, меньшие, чем элемент массива, расположенный...

Удалить из списка все элементы с нечётными значениями и вывести указатель p2 на начало преобразованного списка.
Здравствуйте. Не получается решить задачу. Условие. Дан непустой двусвязный список. Удалить из ...

Как удалить элементы из списка?
Завтра сдавать. Вообще не знаю, как удалить. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Удалить повторяющиеся элементы списка
Есть список в виде класса. Нужно удалить повторяющиеся элементы, вернее, чтобы каждого было по...

9
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
01.11.2016, 16:17 2
Лучший ответ Сообщение было отмечено Maxim Prishchepa как решение

Решение

C++
1
lst.erase(remove_if(begin(lst), end(lst), [](const int& x){ return x < 10; }), end(lst));
0
-18 / 1 / 0
Регистрация: 30.09.2015
Сообщений: 422
01.11.2016, 19:07  [ТС] 3
напишите пожалуйста полную задачу с библиотеками и с return а то я не понимаю что к чему это
0
Эксперт С++
1620 / 950 / 782
Регистрация: 06.02.2016
Сообщений: 2,449
Записей в блоге: 30
01.11.2016, 20:05 4
Лучший ответ Сообщение было отмечено Анютка98 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <list>
#include <ctime>
#include <cstdlib>
using namespace std;
int main() {
    srand(time(NULL));
    list<int>l;
    for(int i=0; i!=10; i++) {
        int m=rand()%20;
        l.push_back(m);
    }
    for(list<int>::iterator iter=l.begin(); iter!=l.end(); iter++) {
        cout<<*iter<<" ";
    }
    l.remove_if(bind2nd(less<int>(),10));
    cout<<endl;
    for(list<int>::iterator iter=l.begin(); iter!=l.end(); iter++) {
        cout<<*iter<<" ";
    }
    return 0;
}
1
-18 / 1 / 0
Регистрация: 30.09.2015
Сообщений: 422
01.11.2016, 20:09  [ТС] 5
3 IntelliSense: идентификатор "bind2nd" не определен c:\Users\Anna\Documents\Visual Studio 2013\Projects\gffffff\gffffff\gffffff.cpp 20 14 gffffff
Цитата Сообщение от Peoples Посмотреть сообщение
l.remove_if(bind2nd(less<int>(),10));
ошибку кажет ((
0
Эксперт С++
1620 / 950 / 782
Регистрация: 06.02.2016
Сообщений: 2,449
Записей в блоге: 30
01.11.2016, 20:10 6
Лучший ответ Сообщение было отмечено Анютка98 как решение

Решение

Анютка98, попробуйте дописать
C++
1
#include <functional>
0
-18 / 1 / 0
Регистрация: 30.09.2015
Сообщений: 422
01.11.2016, 20:23  [ТС] 7
спасибо вам ))
0
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
01.11.2016, 22:20 8
да, посыпаю голову пеплом - задремал. то, что я написал, конечно, универсально и будет работать, но для листов ужасно неэффективно - нужно использовать родной метод. и писать меньше опять же.
0
-18 / 1 / 0
Регистрация: 30.09.2015
Сообщений: 422
06.11.2016, 10:40  [ТС] 9
помогите пожалуйста переделать эту же задачу но с помощью односвязного списка,заранее спасибо,может сможете(

Добавлено через 9 минут
пожалуйста
0
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
06.11.2016, 11:37 10
Цитата Сообщение от Анютка98 Посмотреть сообщение
пожалуйста
std::list -- двусвязный
std::forward_list -- односвязный

заменить везде, где встречается.
плюс операция push_back не определена, можно заменить на push_front
остальное вроде без изменений

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <forward_list>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int main() {
    srand(time(NULL));
    forward_list<int>l;
    for(int i=0; i!=10; i++) {
        int m=rand()%20;
        l.push_front(m);
    }
    for(forward_list<int>::iterator iter=l.begin(); iter!=l.end(); iter++) {
        cout<<*iter<<" ";
    }
    l.remove_if(bind2nd(less<int>(),10));
    cout<<endl;
    for(forward_list<int>::iterator iter=l.begin(); iter!=l.end(); iter++) {
        cout<<*iter<<" ";
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2016, 11:37
Помогаю со студенческими работами здесь

Из списка удалить положительные элементы
Создать линейный односвязный (двухсвязный) список. Из списка удалить положительные элементы,...

Из однонаправленного списка удалить четные элементы
Ребят помогите вообще не понимаю списки, сегодня экзамен, вот условие Из однонаправленного списка...

Удалить из списка все отрицательные элементы
Реализация динамических структур Написать программу, которая удаляет из списка L все...

Из однонаправленного списка удалить четные элементы
Создать линейный однонаправленный список из вещественных чисел. Удалить из списка первый четный...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru