Vabbè oggi sono particolarmente buono ....
codice:
#include <iostream>
#include <fstream>
#include <deque>
#include <string>
using namespace std;

deque <string> lista;

bool raccogliDati (char *path);
void mostraDati ();

main (int argc, char *argv[])
    {
    if (argc == 2)
        if (raccogliDati (argv[1]))
            mostraDati ();
        else
            cout << "Errore nella lettura del file" << endl;
    else
        cout << "Usare : "<< argv[0] << " <nomefile>" << endl;
    return EXIT_SUCCESS;
    }

bool raccogliDati (char *path)
    {
    ifstream fin (path, ios::in);
    if (!fin)
        return false;

    string stringa;
    while (getline (fin, stringa))
        {
        lista.push_back (stringa);
        }

    fin.close();
    return true;
    }

void mostraDati ()
    {
    for (deque<string>::iterator i = lista.begin (); i != lista.end(); i++)
        cout << *i << endl;
    }
Il prog legge il file riga per riga (quello che credo tu non sappia fare).
Ora implementa un'algoritmo decente e posta il codice.