Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
4 / 4 / 0
Регистрация: 02.02.2016
Сообщений: 122

Лямбда-функция: поиск нечётных значений в set<int>

06.02.2019, 10:13. Показов 3866. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан : set<int> st{1,2,3,4,5,6,7,8,9,10} .С помощью лямбда-функции реализовать поиск нечётных значений.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<set>
#include<iostream>
#include<iterator>
#include <algorithm>
 
using namespace std;
int main(){
set<int> v = { 1,2,3,4,5,6,7,8,9 };
    
    set<int> ::iterator it;
for_each(v.begin(), v.end(), [v](auto it) {if ((*it mod 2) == 1) { cout << ostream_iterator<int>(cout, " "); }});
 
        system("pause");
        return 0;
}
Возникает вопрос что писать в параметрах лямбда функции и как вывести нечётные значения.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.02.2019, 10:13
Ответы с готовыми решениями:

Лямбда-выражения и поиск в List<int> четных чисел
Всем привет !!! Уже мозг взорвался, не могу ни как разобраться с одной простенькой задачкой. Прислали тут недавно один тестик для...

Чем отличается guid id {get; set;} от int id {get; set;}
Подскажите пожалуйста чем отличается guid id {get; set;} от int id {get; set;}?

Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT
Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на примере показать для чего она нужна. ...

4
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
06.02.2019, 10:21
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <set>
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main()
{
    std::set<int> v{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    copy_if(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout," "), [](const int &x){
        return x & 1;
    });
}
2
4 / 4 / 0
Регистрация: 02.02.2016
Сообщений: 122
06.02.2019, 10:43  [ТС]
А в квадратных скобках не нужно явно указывать множество на котором мы производим операции?Или это не обязательно?
И возможно ли это реализовать через for_each()?
0
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,161
06.02.2019, 14:14
Лучший ответ Сообщение было отмечено Lorentinka как решение

Решение

Цитата Сообщение от Lorentinka Посмотреть сообщение
А в квадратных скобках не нужно явно указывать множество на котором мы производим операции?Или это не обязательно?
Мы пробегаемся по контейнеру через итераторы, зачем нам еще захватывать его?

Цитата Сообщение от Lorentinka Посмотреть сообщение
И возможно ли это реализовать через for_each()?
C++
1
for_each(v.cbegin(), v.cend(), [](const auto& a) { if (a % 2 != 0) cout << a << ' '; });
2
 Аватар для SomniPhobia
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
06.02.2019, 14:28
Лучший ответ Сообщение было отмечено Lorentinka как решение

Решение

Цитата Сообщение от Lorentinka Посмотреть сообщение
Или это не обязательно?
Это не обязательно. Квадратный скобки - это захват. Его не обязательно использовать. Он нужен для подхвата внешних переменных, экземпляров, которые не передаются через скобки. for_each() в функцию лямбды передаёт только 1 значение за проход - значение текущего элемента контейнера. for_each() требует чтобы входная сигнатура лямбды имела строго 1 параметр на приём. А если надо что - то передать в функцию по которой работает for_each(), то используется захват, чтобы не попортить входную сигнатуру функции. При использовании захвата получится не функция а функтор.
ReDoX всё грамотно написал.
Вот мой вариант.
C++
1
2
3
4
5
6
7
set<int> st{ 1,2,3,4,5,6,7,8,9,10 };
    auto f = [](const int &value)
    {
        cout << (value & 1u ? to_string(value) + " " : "");
    };
    for_each(st.begin(), st.end(), f);
    cout << endl;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2019, 14:28
Помогаю со студенческими работами здесь

Лямбда-выражение из int в QString
Проблема с написанием Лямбды для перевода из int в QString в выражении для синхронизации показателей...

Ошибка: невозможно конвертировать лямбда-выражение в int
Ошибка в 7 строчке.пишет что не может конвертировать лямбда-выражение в int. #include &lt;iostream&gt; #include &lt;functional&gt; ...

Set <int>
Доброе время суток, помогите оптимизировать данный код set &lt; int &gt; temp; temp.insert(1); temp.insert(2); temp.insert(3); ...

Нужно сделать чтоб функция "int" выводила массив значений.достиг вывода 1-го элемента
Нужно сделать чтоб функция &quot;int&quot; выводила массив значений.достиг вывода 1-го элемента Текст, набранный заглавными буквами в сетевом...

Позиция элемента в контейнере STL кон. SET, поиск контейнер set словарь позиция
Есть код №1. Он выводить на экран позицию нужного мне слова (только если в середине 1 слово а не 2 и больше например только...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru