//: C04:Stack1.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Demonstrates the STL stack #include "../require.h" #include #include #include #include #include #include using namespace std; // Default: deque: typedef stack Stack1; // Use a vector: typedef stack > Stack2; // Use a list: typedef stack > Stack3; int main(int argc, char* argv[]) { requireArgs(argc, 1); // File name is argument ifstream in(argv[1]); assure(in, argv[1]); Stack1 textlines; // Try the different versions // Read file and store lines in the stack: string line; while(getline(in, line)) textlines.push(line + "\n"); // Print lines from the stack and pop them: while(!textlines.empty()) { cout << textlines.top(); textlines.pop(); } } ///:~