Howto Erstellen Karte der Vektor Von Sortierten Daten

Habe ich die folgenden Daten, die als Eingabe (sortiert nach der ersten Spalte):

foo 1 2
foo 3 3
bar 10 11

Möchte ich eine Karte erstellen des Vektors mit der ersten Spalte als Schlüssel der Karte
so dass wir haben:

foo = {1,2,3,3}
bar = {10,11}

Aber warum mein code unten funktioniert nicht wie erwartet?

    #include <vector>
#include <map>
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main  ( int arg_count, char *arg_vec[] ) {
if (arg_count !=2 ) {
cerr << "expected one argument" << endl;
return EXIT_FAILURE;      
}
string line;         
ifstream acemblyfile (arg_vec[1]); 
map <string, vector<int> > myMapOfVec; 
vector <string> myVec;  
string KEY = "" ;    
if (acemblyfile.is_open())
{
while (getline(acemblyfile,line) )
{
stringstream ss(line);    
string KEY_TEMP;
int VAL1;
int VAL2;           
ss >> KEY_TEMP >> VAL1 >> VAL2;
MyVec.push_back(VAL1);   
MyVec.push_back(VAL2);   
if (KEY_TEMP != KEY) {     
myMapOfVec[KEY] = MyVec;
KEY = KEY_TEMP;            
MyVec.clear();          
}
}
acemblyfile.close();      
}
else {
cout << "Unable to open file"; 
}
for( map<string, vector<int> >::iterator iter = myMapOfVec.begin(); iter != myMapOfVec.end(); ++iter ) {
vector <int> tempVec = (*iter).second;
string Key = (*iter).first;
for (unsigned i =0; i<tempVec.size(); i++) {
cout << Key << " " << tempVec[i] << endl;
}
}
return 0;
}
InformationsquelleAutor neversaint | 2009-03-16
Schreibe einen Kommentar