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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 334
#1

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

11.10.2015, 16:28. Просмотров 181. Ответов 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;
}
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2015, 16:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Лямбда-выражение и поиск значения в векторе (C++):

Лямбда-выражение, allocator + destroy - C++
Подскажите в чем ошибка пожалуйста( отказывается выполнять функцию destroy: std::allocator&lt;std::string&gt;&amp; newAlloc = alloc; ...

Лямбда-выражение и шаблонный класс - C++
Здравствуйте, у меня есть класс. Как мне использовать лямбда-выражение внутри этого класса? template &lt;class L&gt; class...

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

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

Поиск в векторе - C++
Есть вектор v: v = 0; v = 1; v = 2; v = 4; v = 6; Как с помощью алгоритма find узнать есть ли в векторе число 8, между...

Поиск в векторе - C++
Есть вектор v Нужно задать поиск значения 6 и присвоить переменной i номер элемента вектора v, в котором найдена искомое значение 6. В...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.10.2015, 16:40 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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;
}
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 334
11.10.2015, 16:57  [ТС] #3
Tulosba, спасибо!
ух ты, а iota это для заполнения вектора? это всегда так можно было или только начиная с ++11?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.10.2015, 17:05 #4
Цитата Сообщение от Aecttann Посмотреть сообщение
iota это для заполнения вектора?
Для заполнения любой последовательности увеличивающимися значениями.
Цитата Сообщение от Aecttann Посмотреть сообщение
это всегда так можно было или только начиная с ++11?
Формально, с 11, то фактически было раньше.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2015, 17:05
Привет! Вот еще темы с ответами:

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

Поиск и замена в векторе - C++
Есть вектор v, который содержит следующие значения элементов: v Нужно найти и заменить значения 5 на 1, чтобы в итоге получилось: v

Поиск одинаковых элементов в векторе - C++
Здравствуйте , уже задавал этот вопрос и пользовался разными предложенными методами нахождения одинаковых чисел в векторе , но не...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.10.2015, 17:05
Ответ Создать тему
Опции темы

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