The constructor you are calling for vector will fill the vector with v.size() copies of default constructed strings. So your vector will hold v.size() strings with nothing in them.
You just want to push your string back using str.push_back(v).
Or if you want to use the constructor call:
vector<string> str(1,v).
This will fill the vector with 1 copies of v.
Each item in a vector holds the whole data structure or class. You don't need to reserve a spot for each character.
Code::Blocks has a "console runner" that pauses and tells you the return value and execution time. Nice for testing console apps without having to add a pause.