17 / 2 / 1
Регистрация: 09.05.2013
Сообщений: 171
1

Копирование записи из одного контейнера map в другой

19.10.2017, 23:38. Показов 2145. Ответов 2
Метки нет (Все метки)

Добрый вечер! Помогите, пожалуйста, решить задачу. Есть два контейнера map VParke и NaMarshrute. Нужно найти по ключу запись в первом контейнере и скопировать её во второй. Пробую делать так, но выдаёт ошибку.

C++
1
copy(((VParke.find(num_auto)).first, VParke.find(num_auto)).second, back_inserter(NaMarshrute));
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2017, 23:38
Ответы с готовыми решениями:

Копирование содержимого контейнера map
Итак, есть контейнер map<string,fsElem *>, где fsElem - базовый класс, также есть наследуемый от...

Копирование записи из одного DataGridView в другой
В общем название само себя объясняет. Суть: я выбираю запись в DataGridView и нажимаю на кнопку....

Копирование данных одного поля из разделенной формы (таблицы) в нужные записи другой таблицы
Здравствуйте! Добрый вечер! Подскажите пожалуйста, как из разделенной формы (в которой после...

Из каждого элемента контейнера map вычесть среднее арифметическое контейнера
Контейнер map, тип элементов Int 3.Из каждого элемента вычесть среднее арифметическое контейнера

2
Любитель чаепитий
3726 / 1786 / 561
Регистрация: 24.08.2014
Сообщений: 5,983
Записей в блоге: 1
20.10.2017, 06:53 2
приведи минимальный пример кода, который показывает твою проблему и компилируется на хотя бы одном популярном компиляторе.
0
17 / 2 / 1
Регистрация: 09.05.2013
Сообщений: 171
20.10.2017, 15:54  [ТС] 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <fstream>
#include <iostream>
#include <stdlib.h>
#include <string>
#include <map>
 
using namespace std;
void clr() {system("cls");}
 
class marshrut{
    private:
       string fio;
       int marsh;
    public:
       marshrut()  //конструктор
       {
           fio="";
           marsh=0;
       }
       marshrut(string f, int m) //конструктор присваивания
       {
           fio=f;
           marsh=m;
       }
       ~marshrut(){};   //деструктор
       friend istream& operator>>(istream&, marshrut&); //перегрузка ввода
       friend ostream& operator<<(ostream&, const marshrut&); //перегрузка вывода
};
 
ostream& operator<<(ostream &os, const marshrut&m) //перегрузка вывода
{
    os<<"ФИО: "<<m.fio<<"; Номер маршрута: "<<m.marsh<<";"<<endl;
    return os;
};
 
istream& operator>>(istream &is,marshrut &m) //перегрузка ввода
{
    cout<<"Введите ФИО: ";    is>>m.fio;
    cout<<"Введите номер маршрута: ";  is>>m.marsh;
    return is;
};
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    map <std::string, marshrut> VParke;
    map <std::string, marshrut> NaMarshrute;
 
    ifstream in("VParke.txt");
    string str, num, fam;
    int m;
    int i=0;
    while(in.good())
    {
        in>>str;
        if (i==0) num=str;
        if (i==1) fam=str;
        if (i==2) m=atoi(str.c_str());
        i++;
        if (i==3)
        {
            marshrut marsh(fam, m);
            VParke.insert(pair<string, marshrut>(num, marsh));
            i=0;
        }
    }
    cout<<"               В автопарке:"<<endl<<endl;
    for (map<string, marshrut>::iterator i = VParke.begin(); i!=VParke.end(); ++i)
         cout<<"Номер автобуса: "<<i->first<<"; "<<i->second;
 
    ifstream im("NaMarshrute.txt");
 
    i=0;
    while(im.good())
    {
        im>>str;
        if (i==0) num=str;
        if (i==1) fam=str;
        if (i==2) m=atoi(str.c_str());
        i++;
        if (i==3)
        {
            marshrut marsh(fam, m);
            NaMarshrute.insert(pair<string, marshrut>(num, marsh));
 
            i=0;
        }
    }
    cout<<endl<<"               На маршруте:"<<endl<<endl;
    for (map<string, marshrut>::iterator i = NaMarshrute.begin(); i!=NaMarshrute.end(); ++i)
         cout<<"Номер автобуса: "<<i->first<<"; "<<i->second;
 
   string num_auto;
   cout<<"Введите номер автобуса: ";
   cin>>num_auto;
   if (VParke.find(num_auto)!=VParke.end()) std::cout <<(VParke.find(num_auto))->second << std::endl;
   copy((VParke.find(num_auto)), back_inserter(NaMarshrute));
Добавлено через 4 часа 23 минуты
Неужели никто не может помочь?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2017, 15:54
Помогаю со студенческими работами здесь

Перемещение контрола из одного контейнера в другой
Добрый день! Подскажите пожалуйста, в чем может быть проблема... У меня есть отдельно...

Перемещение содержимого одного контейнера в другой
Нужно переместить содержимое обьекта vector в обьект list. Подскажите пожалуйста!

Копирование одного текстового файла в другой, используя посимвольное, построчное и поблочное копирование
Здраствуйте, у меня такая проблемма мне надо обеспечить копирование одного текстового файла в...

Как передать содержимое контейнера из одного модуля в другой?
Есть 2 модуля. Каждый модуль содержит файлы: *.h, *.cpp, *.pro. В файле *.h первого модуля описан...


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

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

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