The bounds checking, I don't see anyother reason to be using "at()" at all. I could be wrong, it happens quite often for me, but I wanted to make sure that the OP understood that there are better ways to do this, it appears that they do.
I wasn't being picky about using at(), it's just that when I first began using vectors I read an article which recommended the use of at() and it was so long ago that I had forgotten you could access the elements simply by [] and only remembered the aticles advice. ;)