#include <iostream>
#include <algorithm>
#include <list>


int main()
{
        std::list<int> nums = {1, 2, 3, 4, 5};
        auto x = std::find(nums.begin(), nums.end(), 4);
        auto &ref = *x;

        std::cout << *x << std::endl;

        nums.erase (std::find(nums.begin(), nums.end(), 3));
        for (auto &i : nums)
                std::cout << i << std::endl;

        std::cout << *x << std::endl;
        std::cout << ref << std::endl;
}
