Arrays Introduction

  • + 0 comments

    Similar solution, but only one call to copy (reverse copy) and utilizing the vector constructor instead.

    void flipInput(istream&, ostream&);
    
    int main() {
        // Remove First Line
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    
        flipInput(cin, cout);
    
        return 0;
    }
    
    void flipInput(istream &in, ostream &out) {
    
        // Set up iterator over cin istream
        istream_iterator<int> input_begin(in);
        istream_iterator<int> input_end;
    
        // Set up iterator for cout ostream (space separation)
        ostream_iterator<int> output_begin(out, " ");
    
        // Reverse iterator not defined over istream (no -- operator)
        // Copy data with vector constructor
        vector<int> input_data(input_begin, input_end);
    
        // Reverse copy vector iterators, output to ostream iterator
        reverse_copy(input_data.begin(), input_data.end(), output_begin);
        
        return;
    }