应该用一个啥样的变量来接收s.top的返回? 比如x=s.top;?

stack::top() 和其他容器的访问没有什么区别,如 vector::operator、vector::front() 等。stack:top() 有两个重载函数:T\u0026amp; stack::top();const T\u0026amp; stack::top() const;使用例子:std::stack\u0026lt;T\u0026gt;\u0026amp; s = ...;assert(!s.empty());T\u0026amp; a = s.top(); // 如需修改其值。返回的引用会在 s 被修改后失效const T\u0026amp; b = s.top(); // 如不需修改其值。返回的引用会在 s 被修改后失效T c = s.top(); // T 必须是可拷背构造(copy-constructible)类型s.pop(); // a 和 b 失效,c 是复制没问题const std::stack\u0026lt;T\u0026gt;\u0026amp; cs = s;// T\u0026amp; err = cs.top(); // 编译期错误,不能把返回的 const T\u0026amp; 的引用转变成 T\u0026amp;const T\u0026amp; d = cs.top(); // 因 cs 是常数引用,只能调用返回常数引用的重载函数T e = cs.top(); // 复制不受影响,只要 T 是可拷背杓造类型
■网友
如果要pop,应该by value。否则可以by reference。
■网友
auto。。
■网友
stack\u0026lt;dataType\u0026gt; s;…dataType x = s.top();
■网友
这种问题可以去 http://cplusplus.com 或者http://cppreference.com 上去找


    推荐阅读