Sam*_*rsa 14 c++ containers stl
我意识到我可以通过调用获取迭代器引用,back()但为什么不返回它push_back()呢?是出于性能原因吗?或者是由于异常安全(类似于为什么pop_back()不返回弹出值)?在任何一种情况下,请解释.
Nic*_*las 16
各种insert函数返回迭代器的原因很简单:调用者不一定知道如何获得该元素的迭代器.map::insert并set::insert返回一个因为否则,调用者将不得不搜索该元素.
当你这样做时vector::push_back,你知道插入元素的位置.是的--vector.end().你不必搜索它; 它始终是那个位置.你可以在恒定的时间内获得它,并且非常快速的恒定时间.
因此,返回用户已经知道的东西真的没有意义.