Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
AlexLan73
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 155
1

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

14.06.2014, 12:10. Просмотров 919. Ответов 5
Метки нет (Все метки)

Добрый день.
Есть вектор структуры. Нужно сделать копию вектора по условию.
Можно конечно в цикле перебирать элементы и сравнивать и копировать. Это я сделал. А как это реализовать с помощью функции 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 );
Помогите пожалуйста.
С уважением, Александр
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 12:10
Ответы с готовыми решениями:

Как разбить вектор на части(то есть вектора того же типа)
Как разбить вектор на части(то есть вектора того же типа), чтобы было по 8...

Все элементы вектора, которые встречаются более одного раза, переписать в другой вектор
Все элементы вектора V,которые встречаються более одного раза ,переписать в...

Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А
Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора,...

Вектор с неизвестным количеством чисел преобразовать в другой вектор, где числа будут стоять по возрастанию
Вектор с неизвестным количеством чисел нужно превратить в другой вектор, где...

Написать функцию, которая принимает А вектор как аргумент и возвращает три вектора разделяя А вектор на три части
Есть А вектор A=... Написать функцию в Матлабе ,который принимает А вектор...

5
Nekto
342 / 287 / 37
Регистрация: 23.03.2012
Сообщений: 838
14.06.2014, 12:22 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;
    });
Как-то так.
1
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,471
14.06.2014, 12:22 3
Так, наверное:
C++
1
[](sCdelki *s) { return s->KodBumagi == "RIM4"; }
1
AlexLan73
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 155
14.06.2014, 12:33  [ТС] 4
Спасибо второй вариант работает
Первый нет (((
Нужен первый вариант как его исправить?
0
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,471
14.06.2014, 12:44 5
Что не устраивает-то? Константа?
Попробуй объявить _KodBumagi глобально и вставь в условие.
0
AlexLan73
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 155
14.06.2014, 12:49  [ТС] 6
Да константа.
На практике мне придется компилировать plugin под каждый инструмент их сотни + через каждые 3 месяца((
если глобально то же не работает.
0
14.06.2014, 12:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2014, 12:49

Копирование части вектора
Приветствую. Мне необходимо скопировать данные из одного вектора в другой:...

Пересылка элементов из вектора в другой вектор
Добрый вечер, у меня такая задача, есть нулевой вектор a от 1 до 4 и вектор b...

Копирование данных на другой лист по условию
Добрый день, уважаемые форумчане. Прошу помощи в решении следующего вопроса:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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