离开函数时,c ++ std :: stack内容不会是空闲的

时间:2017-04-07 04:30:04

标签: c++ std

我认为在函数err_fun中,当离开err_fun()时,堆栈em将是空闲的,因此em的内容将在同一时间免费,以及为什么 我仍然可以在堆栈st?

的main函数中得到正确的答案

感谢。

#include <stack>

stack<int> st;

void err_fun() {
    stack<int> em;
    st.swap( em );
}

int main() {
    err_fun();

    //... some operation with stack st.
    return 0;
}

1 个答案:

答案 0 :(得分:1)

em的内容将被复制为您{for swap时所要求的内容。由于st的范围是全球性的,因此不会被销毁。