Partly and a bit of parents not instilling in their kids to not litter. It's not difficult, you either leave it in your car till you go to the supermarket or home (there are plenty of bins especially the one directly outside supermarkets) and anything else can go in your pocket or a bag till you get home or pass a bin (nearly every bus stop and outside a shop has a bin). Maybe they should also teach it in schools if they don't anymore.
The McDonalds problem is partly down to overflowing bins outside but what incentive do the staff have to empty the bins when they are targeted on sales though this is no excuse for those littering.