I think you guys are going over the top with the answer, unless I am mistaken the basic question was wether or not a vector needs to be cleared before exiting the application it was used in, not really a question about scope.
I am curious as well about that, I often wonder if my code is leaving junk in the systems memory after a coding session... initially I assumed when the application ended all its resources was freed, but when I starting getting into SDL the tutorials I was following insisted in freeing the surfaces and quiting SDL before the application finished.
Unfortunately, this is C++ with a lot of history and legacy. So there are few simple answers.
However, when you exit your application, all resources are always automatically released (except external things like files). The ultimate "out of scope", as a matter of speaking. So why then go to the effort of freeing it yourself, if you are going to exit the application?
It is a good practice. You never know, when you start the project, what classes are going to have repeated allocate and deallocate patterns.