...
Object& a = list.front();
list.pop_front();
...
完成上述操作后,我需要稍后使用&a。但是覆盖率提高了免费发行后的使用率。 pop_front()之后使用&a是否有问题?
使用
Object& a = list.front();
您使a
reference成为列表的开头元素。当您稍后弹出front元素时,该元素会被破坏,从而为您提供对不存在对象的引用。
您应该copy元素代替
Object a = list.front();
或者可能移动它
Object a = std::move(list.front());