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

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

Восстановить пароль Регистрация
 
Aecttann
 Аватар для Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 274
11.10.2015, 16:28     Лямбда-выражение и поиск значения в векторе #1
Необходимо реализовать простенькую программку поиска значения в векторе. Но сделать это нужно с помощью лямбда-выражения. Как?

Попытка(код)
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++ Поиск заданной строки в векторе
Поиск в векторе C++
Поиск и замена в векторе C++
C++ Поиск в векторе
C++ Поиск в векторе всех элементов со значением, большим заданного с клавиатуры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
 Аватар для Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 274
11.10.2015, 16:57  [ТС]     Лямбда-выражение и поиск значения в векторе #3
Tulosba, спасибо!
ух ты, а iota это для заполнения вектора? это всегда так можно было или только начиная с ++11?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
11.10.2015, 17:05     Лямбда-выражение и поиск значения в векторе #4
Цитата Сообщение от Aecttann Посмотреть сообщение
iota это для заполнения вектора?
Для заполнения любой последовательности увеличивающимися значениями.
Цитата Сообщение от Aecttann Посмотреть сообщение
это всегда так можно было или только начиная с ++11?
Формально, с 11, то фактически было раньше.
Yandex
Объявления
11.10.2015, 17:05     Лямбда-выражение и поиск значения в векторе
Ответ Создать тему
Опции темы

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