мультикарта мультикарты без вставки данных - PullRequest
0 голосов
/ 02 июня 2018

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

Мой входной файл:

Сервер1, База данных, MySQL, 5.5
Сервер2, База данных, MySQL, 5.1
Сервер2, ОС, Ubuntu, 12.04
Сервер3, Язык, Python, 2.6.3

Я хочу сохранить значения следующим образом:

MySQL, 5.5, Server1
MySQL, 5.1, Server2

Мой код:

#include<bits/stdc++.h>
using namespace std;

typedef multimap<string,string> innermap;

multimap<string,innermap> mp;

void print()
{
    multimap<string, innermap >::iterator it;
    multimap<string, string>::iterator inner_it;

    for ( it=mp.begin() ; it != mp.end(); it++ ) 
    {
        cout<<(*it).first<<endl;
        for( inner_it=(*it).second.begin(); inner_it != (*it).second.end(); inner_it++)
            cout << (*inner_it).first<<"  " << (*inner_it).second << endl;
    }
}
int main() 
{
    string str_temp;
    vector<string>str;

    std::ifstream infile("abc.txt");

    while ( getline (infile,str_temp) )
    {
       int i=0;

       stringstream ss(str_temp);
       char delim=',';
       string server;
       string software;
       string version;
       string item;

       while (getline(ss,item,delim))
       {

           i++;
           if(i==1)
               server=item;
           else if(i==3)
               software=item;
           else if(i==4)
               version=item;
           //else
               // i++;

       }    

       cout<<"server  "<<server<<"software  "<<software<<"version   "<<version<<endl;
       multimap<string, innermap >::iterator it;
       it=mp.insert(make_pair(software,innermap()));            
       it->second.insert(make_pair(version,server));

       //print();  
    }
    print();
    return 0;
}

Я отладил свой код, и значения были прочитаны правильно из моего файла перед вставкой.Но когда я звоню print(), все версии, кроме одной, отсутствуют:

MySQL
Сервер1
MySQL
Сервер2
Python
2.6.3 Сервер3
Ubuntu
Server2

Почему не печатаются все строки версий?

...