C++: Containers: Example 1 Using a Vector

One of three contrasting examples of solving the problem with increasingly powerful tools: using arrays, then vectors, then stacks.

The great advantage of using vectors and strings instead of arrays is that there are no size limits - strings and vectors expand as needed.
// Read words and print them in reverse order.
//   Variation 3: Using vector and string
// Fred Swartz 2001-11-08, 2001-12-04

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {

    vector<string> allwords; // vector of strings to hold words
    string word;             // input buffer for each word.

    //--- read words/tokens from input stream
    while (cin >> word) {
        allwords.push_back(word);
    }
    
    int n = allwords.size();
    cout << "Number of words = " << n << endl;

    //--- write out all the words in reverse order.
    for (int i=n-1; i>=0; i--) {
        cout << allwords[i] << endl;
    }
    return 0;
}//end main