#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
struct Connection {
string from;
string to;
int duration;
Connection(string from, string to, int duration)
: from(from), to(to), duration(duration)
{ }
};
ostream& operator<<(ostream& s, const Connection& c) {
return s << c.from << " -> " << c.to
<< ": " << c.duration << "s\n";
}
int main()
{
map<string,vector<Connection> > m;
ifstream infile("mapalistdata.txt",ios::in);
string from, to;
int duration,j=0;
while (true)
{
infile>>from>>to>>duration;
Connection tmp(from,to,duration);
m [tmp.from].push_back(tmp);
j++;
if (!infile) break;
// i umieszczenie ich w mapie 'm'
}
infile.close();
string chatterbox; // imie najwiekszego gaduly
int longestTime = 0; // najdluzszy czas przegadany
// przez jedna osobe
for (map<string,vector<Connection> >::iterator i = m.begin(); i != m.end(); ++i)
{
int tim = 0;
string key = i->first;
for(int j=0;j<m[key].size() ;j++)
tim += m[key][j].duration;
if(longestTime< tim)
{
longestTime=tim;
chatterbox=key;
}
cout << key << ": " << tim << " seconds" << endl;
}
// rozmowy najwiekszego gaduly
vector<Connection>& vec = m[chatterbox];
cout << chatterbox << " chattered for " << longestTime
<< " seconds" << " in " << vec.size()
<< " connections" << endl;
for (vector<Connection>::iterator i = vec.begin();i != vec.end(); ++i)
{
}
cin.sync();
cin.get();
}
Witam, za zadanie miałem uzupełnić program do podanego schematu..
Program na początku ma wczytać dane do mapy, później je wypisać i sprawdzić po czym wypisac osobe która najwięcej gadała
i brakuje mi tego ostatniego..
Działą mi to gdy wpiszę
for(int i=0;i<m[chatterbox].size();i++)
cout<<m[chatterbox][i];
ale muszę to wypisać w takiej pętli:
for (vector<Connection>::iterator i = vec.begin();i != vec.end(); ++i)
{
}
podstawowe pytanie.. czym jest i?:)