Hi everyone,

My assignment partner and i have been working on this for a while and we have hit a wall and we have been stuck for several hours. A couple of questions, please. 1) In the Airports class I am trying to get input data from a text file and put it inside the variables of an airport object that I'm going to create. 2) Then I'm going to try and store my Airport objects inside a map container with a key being the Airport code. This is what it looks like so far.

This is my header file:

Code:
   #ifndef AIRPORTS_
#define AIRPORTS_
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <iterator>
#include <map>
#include"Flights.h"
using namespace std;

class Airports{


 std::istream& operator (std::istream&, Airport::Airport&);
 
   };
 
 #endif /*AIRPORTS_*/
this is the CPP file:

Code:
  
#include <iostream>
#include <string>
#include "Airports.h"
      
     
      
    istream& Airports:: operator (istream& ins, Airport::Airports:: Airport& airport ){
  
  // Notice how this operator does not need to be 'friend' to Airport
  string s;
  int h, m;

  // Get Flight Code
  ins >> s;
  airport.setCode( s );

  // Get scheduled arrival time
  ins >> h;
  if (ins.get() != ':')
    {
    ins.setstate( ios::badbit );
    return ins;
    }
  ins >> m;
  airport.setMinimumConnect( (double)(h % 24) + (m / 60.0) );

  // Get the description for humans
  ins >> ws;
  getline( ins, s );
  airport.setDescription( s );

  return ins;
  } 
   
      
   // This is where the list of airline flight data is stored using airport code (to access airport information) 
map<Airport::Airport> airport_flights;
map<Airport,string> mymap;
  map<Airport,string>::iterator it;

// How many data do we need to read?
int num_flights;
cin >> num_flights;
cin.ignore( std::numeric_limits <std::streamsize> ::max(), '\n' );

// Read exactly that many
copy_n(
  std::istream_iterator <Airport::Airport> ( cin ),
  num_flights,
  std::back_insert_iterator <Airport::Airport> ( airport_flights )
  );
the above code doesn't compile.
these are the classes that the Airports class is using. the code below does compile and works:

Code:
    #include "Flights.h"


		  //_____________Start Implementation of Flight class________________\\


		  /*Start House-keeping functions  for Flight Class
		   * Default constructor
		   *
		   */
		   Flight:: Flight (){
		   //debug statement
		   cout<< "we are in the construtor with Default arguments\n";

		   setOrigin("");
		   setDestination("");
		   setDepartureTime(0);
		   setDuration(0) ;


		 }

		  /* Constructor for flight object
		   *
		   *
		   */
		   Flight::Flight(const string &orig ,const string &destin ,const string &dep, const string &dur ){
			//debug statement
		   cout<< "we are in the construtor with arguments\n";
		 
		   setOrigin(orig);
		   setDestination(destin);
		   setDepartureTime(dep);
		   setDuration(dur);



		 }

		 /* copy constructor for flight object
		   *
		   *
		   *

		   FlightsTL:: Flight:: Flight(const Flight& rhs){



		   } */

		   /**destructor for flight object
		   *
		   *
		   */
		  Flight::  ~Flight(){

		 }
		   //end House-keeping functions \\


	   //_____________Start other functions____________________________\\

		   /* Equals operation
		   *
		   */
		  Flight&  Flight::operator=(const Flight& rhs){

			return *this;
		 }

		   /* get origin
		   *
		   */
		 string  Flight::getOrigin() const{

			  return org;
		   }

		   /* get destination
		   *
		   */
		 string  Flight::getDestination()const{

			  return dest;

		   }

		   /* get departure time
		   *
		   */
		   string  Flight:: getDepartureTime()const{

				return depTime;

		   }

		   /* get duration
		   *
		   */
		   string  Flight:: getDuration ()const{

			   return dura;

		   }

		   /* set origin
		   *
		   */
		   void  Flight:: setOrigin(string t ){

				  org = t;
		   }

		   /* set destination
		   *
		   */
		   void  Flight:: setDestination(string s){

				  dest =s;

		   }

		   /* set departure time
		   *
		   */
		   void  Flight:: setDepartureTime(string c){

			  depTime = c;
			}

		   /* get duration
		   *
		   */
		   void  Flight:: setDuration(string d){

				dura = d;
		   }

		   /* set all
		   *
		   */

		   void  Flight:: setAll(string a,string b,string c,string d){

				   setOrigin(a);
				   setDestination(b);
				   setDepartureTime(c);
				   setDuration(d) ;
		   }

		   /** ToString to display flight information
		   *
		   */
		   string  Flight:: toString()const{
				  string s;
				  //double depT = getDepartureTime();
				 // double durA =  getDuration();
				   // convert double to string
				 // char deptStr[50];
				 // sprintf(deptStr,"%g",depT);
				  // convert to string
				 // char durStr[50];
				//  sprintf(durStr,"%g",durA);
				  // print all Flight information
				  s=getOrigin() +"\t"+ getDestination() + "\t"+  getDepartureTime() + "\t"+ getDuration() +"\n" ;
					return s;
			   }


	//__________________end of Flight implementation_____________\\






	//__________________Start of of FlightsTL implementation_____________\\
        //Start House-keeping functions
		  /*Default constructor
		  *
		  */

	   Airport:: Airport (){
		setCode("");
		setMinimumConnect(0);
		setDescription("");


		 }

		  /* Constructor for Airport object
		   *
		   *
		   */
		 Airport:: Airport(const string& code, const double& minCon, const string& description){
			 setCode(code);
			  setMinimumConnect(minCon);
			  setDescription(description);

		  }

		  /* copy constructor for Airport object
		   *
		   *
		   */

		  // Airport(const Airport& rhs);

		   /**destructor for Airport object
		   *
		   *
		   */
		  Airport:: ~Airport(){



		   }

		   //end House-keeping functions\\

 //_________________Start of other Airport functions___________________________\\

		   /* Equals operation
		   *
		   */
		Airport&  Airport::  operator=(const Airport& rhs){

					  return *this;

		   }

		   /* get minimum connection
		   *
		   */
		  double Airport:: getMinimumConnectionTime()const{

							return minConnect;

		   }

		   /* get Code
		   *
		   */
		   string Airport:: getCode()const{
				  return code;


		   }

		   /* get description
		   *
		   */
		   string Airport:: getDescription()const{


				  return description;


		   }
		   
		   /*get number of Flights 
		   *
		   */
		   int Airport:: getFlightsNum(){
               
               return FlightsNum;
               
               }


		   /* set minimum connection time
		   *
		   */
		   void Airport:: setMinimumConnect (double a){

					 minConnect =a;

		   }

		   /* set code
		   *
		   */
		   void Airport:: setCode (string b){
						code = b;


		   }

		   /* set description
		   *
		   */
		   void Airport:: setDescription (string c){

					description = c;

		   }



		   /* set all
		   *
		   */

		   void Airport:: setAll (string a,double b,string c){

				   setMinimumConnect(b) ;
				   setCode(a);
				   setDescription(c);


		   }


		 void Airport::addFlight(const Flight& Flight){

			 Flights.push_back(Flight);
			 FlightsNum++;

		 }


		 /*add Flight
		  *
		  */
		 void Airport:: addNewFlight(const string& origin , const string& destination,const string& depTime, const string& duration){

			  Flights.push_back(Flight(origin,destination,depTime,duration));
			  FlightsNum++;

		   }

			/** ToString to display all flights and thier information
		   *
		   */
		 string  Airport:: toString(){
					  vector<Flight>::iterator find;
					  string str;

					  if (getFlightsNum() == 0) {
							return "Nothing to show no Flights" ;
					 }

				for(find = Flights.begin(); find != Flights.end(); find++){
					  str+=(*find).toString();

				   }
			

				  string s;
				  double mCon = getMinimumConnectionTime();

				   // convert double to string
				  char mConStr[50];
				  sprintf(mConStr,"%g",mCon);

				  // print all Airport information
				  s=getCode() +"\t"+ mConStr + "\t"+ getDescription() + "\n" ;
				 return str + s;

		   }



	  //__________________end of FlightsTL Implementation______________\\




	  //I'm thinking of adding remove(), and clear() and add via text
Thanks for your help, everyone

Sandy