//: C05:PrintSequence.h // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Prints the contents of any sequence #ifndef PRINTSEQUENCE_H #define PRINTSEQUENCE_H #include template void print(InputIter first, InputIter last, char* nm = "", char* sep = "\n", std::ostream& os = std::cout) { if(*nm != '\0') // Only if you provide a string os << nm << ": " << sep; // is this printed while(first != last) os << *first++ << sep; os << std::endl; } // Use template-templates to allow type deduction // of the typename T: template class C> void print(C& c, char* nm = "", char* sep = "\n", std::ostream& os = std::cout) { if(*nm != '\0') // Only if you provide a string os << nm << ": " << sep; // is this printed std::copy(c.begin(), c.end(), std::ostream_iterator(os, " ")); cout << endl; } #endif // PRINTSEQUENCE_H ///:~