std::vector中reserve()与迭代器配合使用时的报错问题咨询
std::vector中reserve()与迭代器配合使用时的报错问题咨询
各位大佬好,我最近碰到个挺头疼的问题,特意来请教下:
当我在操作std::vector时,把reserve()方法和迭代器一起用的话,程序就会出现意想不到的错误;但要是不单独用迭代器存储插入位置,直接在insert里用numsT.begin()就完全正常。
先给大家看能正常运行的代码:
vector <int> nums{1,2,3,4,5}, numsT{}; numsT.reserve(50); numsT.insert(numsT.begin(), nums.begin(), nums.end() - 1);
然后是那段会出问题的代码:
vector <int> nums{ 1,2,3,4,5 }, numsT{}; vector <int>::iterator first{ nums.begin() }, last{ nums.end() - 1 }, position{ numsT.begin() }; numsT.reserve(50); numsT.insert(position, first, last);
有没有大神能帮我分析下这两段代码的差异为啥会导致出错呀?
备注:内容来源于stack exchange,提问作者A.H
相关产品推荐
相关产品推荐

