There is a simple function I wrote to populate an STL list with the elements in a text file. The two parameters are the filename and the list to populate. This is a template function, so it will support lists of any type of element. If you want to use a different STL collection, you can change the code from using a list to your preferred collection type. I wrote this function to clear the collection before reading the file.
The function requires the following headers and uses the following:
#include <algorithm>
#include <iostream>
#include <fstream>
#include <iterator>
using std::ifstream;
using std::istringstream;
using std::list;
using std::for_each;
using std::istream_iterator;
using std::back_insert_iterator;
Following is the actual function. The remarkable thing about the STL is its power, and this is one example: With istream_iterator and the std::copy() function, reading the file & populating the collection can be done with very little code (practically one line).
template <class T>
void ReadDataFile(const char* pFilename, list<T>& pDataList)
{
pDataList.clear();
ifstream inFile(pFilename, std::ios::in);
if (inFile.good())
{
std::copy(istream_iterator<T>(inFile), istream_iterator<T>(), back_insert_iterator<list<T> >(pDataList));
inFile.close();
}
}