0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 5
1

STL ( алгоритм replace и remove )

13.06.2018, 19:52. Показов 1701. Ответов 3
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста такой момент. У меня есть vector<Film> v1, где Film это класс. В этом классе есть поле
list <string> actors. Мне нужно ввести с клавиатуры 2 имени : 1-ое имя - это имя актёра, которого я должна заменить на 2-ое введённое имя.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
string actor1, actor2;
        cout << endl <<  "Введите имя актёра, которого хотите заменить  ";
        
        cin >> actor1;
 
        cout << "Введите имя актёра, на которого хотите заменить данного актёра  "; 
        
        cin >> actor2;
        
        for (vector<Film> ::iterator i = v1.begin(); i != v1.end(); i++)
        {
            list <string> buffer((*i).get_actors());
            replace(buffer.begin(), buffer.end(), "том", "тэр");
            (*i).set_actors(buffer);        
        }
Этот код собирается, но вектор остаётся без изменений. Как это исправить? И сделать так, чтобы у меня удалялся указанный актёр из списка ( это как другое задание ).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2018, 19:52
Ответы с готовыми решениями:

stl remove своя функция
мне нужна в качестве 3 аргумента функции remove указать структура, компилятор выдаёт ошибку, как...

метод Remove() и Replace() в TextBox
Задаюсь все тем же вопросом, почему при заполнении текстового поля не работают эти методы Remove()...

Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF
Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному...

Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING)
Салем, начал изучать файловую работу в С++, и столкнулся с такой проблемой, что функция remove()...

3
Комп_Оратор)
Эксперт по математике/физике
8731 / 4476 / 602
Регистрация: 04.12.2011
Сообщений: 13,366
Записей в блоге: 16
13.06.2018, 21:35 2
LebedevaVika,
Цитата Сообщение от LebedevaVika Посмотреть сообщение
list <string> buffer((*i).get_actors());
это локальная переменная. К тому же она пустая. Нужно что-то сделать с вектором vi, которого не видно и есть надежда, что в нём есть фильмы.
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
29
// prg_title lambda vs transform
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
struct film
{
    film(const string& str):name(str){}
 
    string name;
};
 
int main(int argv, char*argc[])
{
    vector<film>names={string("Sasha"),string("Masha"),string("Sasha"),string("Dasha"),string("Sasha")}, nextnames;
 
    string repStr="Sasha", newStr="Misha";
 
    transform(names.begin(), names.end(),  back_inserter(nextnames),
          [&](film & a){
          if(a.name == repStr) a.name=newStr ;
          return a;
          }
         );
for (auto a : nextnames)cout<<a.name<<endl;
 cin.get();
    return 0;
}
0
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 5
14.06.2018, 11:13  [ТС] 3
А если у меня текст написан кириллицей, то эти алгоритмы буду работать?
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
14.06.2018, 15:20 4
Да.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2018, 15:20
Помогаю со студенческими работами здесь

Множество set и алгоритм replace
Задание такое: 1. Создать ассоциативный контейнер. 2. Заполнить его элементами пользовательского...

Алгоритм STL
Помогите определиться с предикатом в алгоритме p_sort=find_if(v_sort.begin(),v_sort.end(),???) в...

List.remove() vs asList.remove()
Всем привет. Хотел решить одну задачку тут на форуме, но что-то у меня все из рук валится, и в...

STL. Алгоритм copy()
Здравствуйте. Решаю задачку из учебника лафоре. Звучит она следующим образом: Алгоритм copy()...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru