在 C++ STL 中,栈(std::stack)的 pop 操作返回栈顶元素并移除它。
STL 容器:vector(动态数组)、set/map(红黑树,有序)、unordered_set/map(哈希表,无序)。注意迭代器失效问题。
审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。
【考点】STL标准库用法|容器语法|函数返回值类型
1. 🎯 考纲定位:《GESP 六级大纲》"标准库使用"模块,命题人专卡"容器API细节"——90%考生凭直觉认为pop是"弹出即返回",恰恰是C++ STL里最容易混清的语法点。
2. 🧠 解题思维:看到std::stack::pop先想它属于成员函数且参数为空,C++规定返回类型必须与操作语义匹配;pop是"弹出并丢弃",语义上不需要返回原值,所以返回void;而top才是"查看栈顶",返回T&。因此题干"返回栈顶元素"与API定义冲突,选B。
3. 🪤 陷阱拆解:
top的语义,且pop根本没有声明返回值;4. 🔄 反命题思维:把"pop"换成"top"或把"返回"换成"移除",答案就反转——这正是C++ STL里"查看"与"删除"两类成员函数的本质区别,刷到类似题先问"是查还是删?有返回值吗?"