Or you could put breakpoints in the likely candidates, run it and see what happens.
It's actually quite beneficial to have a set of classes, fully decked out with each type of constructor and operator. Put cout statements in each method and then try creating vectors of them (for e.g.) and see what methods are actually called when. You'll be surprised.
Which will it use? And how do you know? My guess is the 2nd one but I don't know how to find out from the vector documentation alone.. I don't really want to just test it because I'd like to know why it's like that and where I can find the documentation that says it.