对于.test{
width:100% ;
height: 100% ;
margin: 0 auto;
}
.test .modal-content{
width:100% ;
height: 100% ;
}
,我们使用std::stack
提取最后一个成员,并使用pop()
获得其值。是否有任何捷径可以同时执行这两项操作(获取上一个成员的价值并将其踢出去)?
答案 0 :(得分:2)
有什么捷径可同时执行这两项操作
否。
但是您可以编写一个调用两者的函数并将其用作“快捷方式”。
答案 1 :(得分:2)
没有技术原因无法做到这一点。它可以很简单地作为实用程序实现:
template <typename T>
auto pop_value(T & stack) {
auto v = std::move(stack.top());
stack.pop();
return v;
}
如果使用的C ++ 11无法使用返回类型推导,请将auto
替换为typename T::value_type
。
答案 2 :(得分:1)
top()-仅返回元素,但不删除它。 pop()-仅删除元素,但不返回任何内容。
没有这样的方法可以删除并返回删除的元素。
确保在进行顶部或弹出操作时进行空检查,因为这会导致错误。执行任何这些操作之前,请先进行空支票。
答案 3 :(得分:1)
pop()
不返回弹出元素的值的原因是这样做不是异常安全的。如果返回值的副本构造函数引发异常,则该值已丢失。它已从堆栈中删除,但尚未复制。无法取回。如果您对此并不在意,则可以通过显而易见的方式编写“快捷方式”功能:复制top()
对象,pop()
堆栈,然后返回值。