以下关于栈和队列的代码,执行后输出是( )。
stack<int> s;
queue<int> q;
for (int i = 1; i <= 3; ++i) {
s.push(i);
q.push(i);
}
cout << s.top() << " " << q.front() << endl;排列组合问题:先判断是否考虑顺序(排列P vs 组合C),再确定是否允许重复。乘法原理分步,加法原理分类。
区分排列(考虑顺序,$P(n,m)$)和组合(不考虑顺序,$C(n,m)$)。注意特殊元素优先处理、正难则反等计数技巧。
【考点】栈(Stack)|队列(Queue)|STL容器操作
本题卡住的是绝大多数考生对 STL 容器语义的混淆——六级大纲明确要求区分 stack(后进先出)与 queue(先进先出)的基本操作。命题人把两个容器放在同一段代码里,就是专门测试"看到相似接口就默认相同行为"的惯性思维。