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

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

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

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

11.10.2015, 16:28. Просмотров 161. Ответов 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++ Поиск заданной строки в векторе
Поиск в векторе C++
Поиск и замена в векторе C++
C++ Поиск в векторе
C++ Ошибка: невозможно конвертировать лямбда-выражение в int
C++ Определение типа возвращаемого значения лямбда-выражения
Поиск самого большого элемента в векторе C++
Локальное лямбда-выражение не допускается в функции-члене класса управляемый C++
Сохранить в векторе удвоенные значения переменной C++
Лямбда-выражение, allocator + destroy C++
C++ Лямбда-выражение и шаблонный класс
Поиск одинаковых элементов в векторе C++

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

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

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