Название: Вектор структур. Поиск элемента по значению поля структуры. Отправлено: Pro100Ferrari от Мая 04, 2014, 12:54 Всем добрый день. Имеется вектор структур:
Код: struct MyStruct{ Проблема в том, как найти в векторе член структуры по полю field? Например, мне нужен член структуры со значением поля field = 15; Если бы вектор был просто заполнен числами, а не членами структуры, то было бы понятно как найти нужный элемент. Искал решение вопроса. Нашел, что нужно будет использовать функторы. Потом нужно будет еще перегружать операцию сравнения. Какие у вас есть предложения по решению вопроса? Название: Re: Вектор структур. Поиск элемента по значению поля структуры. Отправлено: m_ax от Мая 04, 2014, 13:02 Зачем функторы..
Лямбды же есть) Код
Название: Re: Вектор структур. Поиск элемента по значению поля структуры. Отправлено: Pro100Ferrari от Мая 04, 2014, 15:40 find_id не видит. Подключил QtAlgorithms, но не помогло.
Название: Re: Вектор структур. Поиск элемента по значению поля структуры. Отправлено: m_ax от Мая 04, 2014, 15:52 find_id не видит. Подключил QtAlgorithms, но не помогло. Конечно, в QtAlgorithms её просто нет) алгоритм std::find_if из стандартной библиотеки.. #include <algorithm> Название: Re: Вектор структур. Поиск элемента по значению поля структуры. Отправлено: Pro100Ferrari от Мая 04, 2014, 16:13 Все равно не компилируется.
На такой код Код: auto it = std::find_if(vector.begin(), vector.end(), [&](const OneRecord & s)->bool { return s.code == field; } ); 'it' does not name a type expected primary-expression before ')' token expected ';' before ')' token Название: Re: Вектор структур. Поиск элемента по значению поля структуры. Отправлено: Old от Мая 04, 2014, 16:24 Новый стандарт у вас не включен.
Добавьте в pro файл проекта строку: CONFIG += c++11 Название: Re: Вектор структур. Поиск элемента по значению поля структуры. Отправлено: Pro100Ferrari от Мая 04, 2014, 17:04 Отлично! Все работает. Как тут сказать "Спасибо" в профиль?
|