Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aecttann
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 342
#1

Лямбда-выражение и поиск значения в векторе - C++

11.10.2015, 16:28. Просмотров 262. Ответов 3
Метки нет (Все метки)

Необходимо реализовать простенькую программку поиска значения в векторе. Но сделать это нужно с помощью лямбда-выражения. Как?

Попытка(код)
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
#include "stdafx.h"
 
using namespace std;
 
 
 
int main()
{
    int var_input = 0, var_received = 0;
    vector<int> vec_data;
    for (int n = 0; n < 10; n++)
    {
        vec_data.push_back(n);
    }
 
    cin >> var_input;
 
    auto result =
        [vec_data] {for (auto x : vec_data) {
        if (vec_data::operator[var_input])
            cout << var_input;
    } };
    {
 
    cout << result << endl;
    return 0;
}
}

http://www.cyberforum.ru/cpp-beginners/thread1671047.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2015, 16:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Лямбда-выражение и поиск значения в векторе (C++):

Лямбда-выражение и шаблонный класс
Здравствуйте, у меня есть класс. Как мне использовать лямбда-выражение...

Ошибка: невозможно конвертировать лямбда-выражение в int
Ошибка в 7 строчке.пишет что не может конвертировать лямбда-выражение в int. ...

Локальное лямбда-выражение не допускается в функции-члене класса управляемый
Здравствуйте, мне хотелось бы распараллелить алгоритм с помощью...

Поиск в векторе
Есть вектор v Нужно задать поиск значения 6 и присвоить переменной i номер...

Поиск в векторе
Есть вектор v: v = 0; v = 1; v = 2; v = 4; v = 6; Как с помощью...

3
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
11.10.2015, 16:40 #2
Лучший ответ Сообщение было отмечено Aecttann как решение

Решение

Цитата Сообщение от Aecttann Посмотреть сообщение
Но сделать это нужно с помощью лямбда-выражения.
Например так:
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
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
 
using namespace std;
 
int main()
{
    int i = 0;
    vector<int> v(10);
    iota(v.begin(), v.end(), 1);
 
    cin >> i;
 
    if( v.end() != find_if(v.begin(), v.end(), [=](int e){ return e == i; }) )
    {
        cout << "found\n";
    }
    else
    {
        cout << "not found\n";
    }
 
    return 0;
}
1
Aecttann
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 342
11.10.2015, 16:57  [ТС] #3
Tulosba, спасибо!
ух ты, а iota это для заполнения вектора? это всегда так можно было или только начиная с ++11?
0
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
11.10.2015, 17:05 #4
Цитата Сообщение от Aecttann Посмотреть сообщение
iota это для заполнения вектора?
Для заполнения любой последовательности увеличивающимися значениями.
Цитата Сообщение от Aecttann Посмотреть сообщение
это всегда так можно было или только начиная с ++11?
Формально, с 11, то фактически было раньше.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2015, 17:05
Привет! Вот еще темы с решениями:

Определение типа возвращаемого значения лямбда-выражения
Вообщем не совсем понимаю в каких случаях надо использовать замыкающий тип...

Поиск и замена в векторе
Есть вектор v, который содержит следующие значения элементов: v Нужно найти...

Поиск в векторе по полю структуры
Здравствуйте! Есть две структуры struct VectorTime{ int time; ...

Поиск по возрасту в векторе структур
сделал программу телефонную книгу есть добавление контактов вывод контактов...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru