//: C05:TempTemp4.cpp {-bor}{-msc} // From "Thinking in C++, Volume 2", by Bruce Eckel & Chuck Allison. // (c) 1995-2004 MindView, Inc. All Rights Reserved. // See source code use permissions stated in the file 'License.txt', // distributed with the code package available at www.MindView.net. // Passes standard sequences as template arguments. #include #include #include // Declares allocator #include using namespace std; template > class Seq> class Container { Seq seq; // Default of allocator applied implicitly public: void push_back(const T& t) { seq.push_back(t); } typename Seq::iterator begin() { return seq.begin(); } typename Seq::iterator end() { return seq.end(); } }; int main() { // Use a vector Container vContainer; vContainer.push_back(1); vContainer.push_back(2); for(vector::iterator p = vContainer.begin(); p != vContainer.end(); ++p) { cout << *p << endl; } // Use a list Container lContainer; lContainer.push_back(3); lContainer.push_back(4); for(list::iterator p2 = lContainer.begin(); p2 != lContainer.end(); ++p2) { cout << *p2 << endl; } } ///:~