我是否认为这个看似无辜的代码相当危险?
template<typename T>
void insertLast(std::vector<T>& v)
{
if(v.empty()) return;
v.insert(v.begin(), v.back());
}
阅读一些答案后的一些澄清..
好吧,我并不是真的在问如何将一个元素插入到向量中,而是我做了一个虚拟的情况来质疑一个原则。换句话说,你认为有必要制作一个副本吗(这里创建了一个临时的.. 和一个 const保证对临时的引用):
template<typename T>
void insertLast(std::vector<T>& v)
{
if(v.empty()) return;
v.insert(v.begin(), T(v.back()));
}