Even better:
for (auto &x : vec) { }
for (auto &x : vec) { }
Using https://github.com/Rip-Rip/clang_complete you can use smart context-aware completion with vim/emacs.
For example if you had this code:
vector<string> vec; for (auto &x : vec) { x
and then if you typed period (.), it would show members from std::string. I'd say it works better than Intellisense (it's very precise and you use the same parser for code completion and final compilation).
Thanks for the tip, will update my copy and try it out this weekend! :D