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

Копирование части вектора в другой вектор по условию, функцией copy_if - C++

Восстановить пароль Регистрация
 
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 130
14.06.2014, 12:10     Копирование части вектора в другой вектор по условию, функцией copy_if #1
Добрый день.
Есть вектор структуры. Нужно сделать копию вектора по условию.
Можно конечно в цикле перебирать элементы и сравнивать и копировать. Это я сделал. А как это реализовать с помощью функции copy_if
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
typedef struct sCdelki{
    string  KodBumagi;
    string  Nzajava;
    string  Nsdelka;
    int Kol_vo;
} sСделки;
 
typedef vector<sCdelki*> vCdelki;
vCdelki vTekCdelki;
vCdelki vKopyCdelki;
.........
string _KodBumagi="RIM4";
 
copy_if(vTekCdelki.begin(),vTekCdelki.end(), vKopyCdelki.begin(), // не знаю как сделать  _KodBumagi ==     KodBumagi );
Помогите пожалуйста.
С уважением, Александр
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 12:10     Копирование части вектора в другой вектор по условию, функцией copy_if
Посмотрите здесь:

C++ заполнение вектора функцией copy из бинарного файла
C++ Копирование файлов в папку по условию
Все элементы вектора, которые встречаются более одного раза, переписать в другой вектор C++
Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А C++
Вектор вектора C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.06.2014, 12:22     Копирование части вектора в другой вектор по условию, функцией copy_if #2
C++
1
2
3
4
5
std::copy_if(vTekCdelki.begin(),vTekCdelki.end(), vKopyCdelki.begin(),
  [&](const sCdelki* i_data)
    {
    return i_data->KodBumagi == _KodBumagi;
    });
Как-то так.
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
14.06.2014, 12:22     Копирование части вектора в другой вектор по условию, функцией copy_if #3
Так, наверное:
C++
1
[](sCdelki *s) { return s->KodBumagi == "RIM4"; }
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 130
14.06.2014, 12:33  [ТС]     Копирование части вектора в другой вектор по условию, функцией copy_if #4
Спасибо второй вариант работает
Первый нет (((
Нужен первый вариант как его исправить?
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
14.06.2014, 12:44     Копирование части вектора в другой вектор по условию, функцией copy_if #5
Что не устраивает-то? Константа?
Попробуй объявить _KodBumagi глобально и вставь в условие.
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 130
14.06.2014, 12:49  [ТС]     Копирование части вектора в другой вектор по условию, функцией copy_if #6
Да константа.
На практике мне придется компилировать plugin под каждый инструмент их сотни + через каждые 3 месяца((
если глобально то же не работает.
Yandex
Объявления
14.06.2014, 12:49     Копирование части вектора в другой вектор по условию, функцией copy_if
Ответ Создать тему
Опции темы

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