I would like to make a class that has a function that saves the data sent to it, to a text file. The data that can be passed to it can be anything like a std::string<
I believe you're mixing two things in one class, which should be avoided: As far as I can see, what your class is about (its "responsibility") is to write data to a file. Another thing you're adding is knowledge about iterating collections of data.
Take a look at STL's
methods:
http://www.cplusplus.com/reference/algorithm/
There you can find generic ways of iterating data, e.g. in the find
method:
template
InputIterator find ( InputIterator first, InputIterator last, const T& value )
{
for ( ;first!=last; first++) if ( *first==value ) break;
return first;
}
This makes you independent from whether you are using vector
, list
, arrays or whatever.
If you also want to serialize things like vector
(note the space between the two >
!), you have to explain more on what you want to do with such data. Simply concat the elements as if all T
s were in one vector
? In this case you might try to create a new iterator which does exactly this.
The boost iterator library could help with this:
http://www.boost.org/doc/libs/1_48_0/libs/iterator/doc/index.html