Reverse

C++ Using STL reverse 

int main(int argc, char *argv[])
{
    int a[] = { 4, 5, 6, 7 };
    std::cout << "Int Array" << endl << "original: ";
    for (auto e : a) std::cout << e;
    std::cout << endl;

    std::cout << "reverse: ";
    std::reverse(std::begin(a), std::end(a));
    for (auto e : a) std::cout << e;
    std::cout << endl;

    std::string name = "DRAGON";
    std::cout << "String" << endl << "original: " << name << endl;
    std::reverse(std::begin(name), std::end(name));
    std::cout << "reverse: ";
    for (auto e : name) std::cout << e;
    std::cout << endl;

    int* ip;
    int n = 9;
    ip = &n;
    std::cout << "Pointer Values" << endl << "original: " << ip << endl;
    std::stringstream ss;
    ss << ip;
    std::string address = ss.str();

    std::reverse(std::begin(address), std::end(address));
    std::cout << "reverse: ";
    for (auto e : address) std::cout << e;
    std::cout << endl;

    return 0;
}

Output:

Int Array
original: 4567
reverse: 7654
String
original: DRAGON
reverse: NOGARD
Pointer Values
original: 0115FB40
reverse: 04BF5110
C/C++