#CSPJDSR04. CSP-J 数据结构|R04 STL 容器 set、map、vector
CSP-J 数据结构|R04 STL 容器 set、map、vector
CSP-J 数据结构|R04 STL 容器 set、map、vector
训练重点: 去重与有序、键值映射、operator[] 副作用、vector 下标和常见复杂度
每题只有一个正确选项。建议按 CSP 初赛方式独立完成,程序阅读题必须在草稿纸上逐步模拟。
第 1 题
set<int> s; 中依次执行 insert(4), insert(1), insert(4), insert(3),则 s.size() 为( )。
{{ select(1) }}
- 2
- 3
- 4
- 5
第 2 题
对 set<int> s,s.count(x) 的常见返回值是( )。
{{ select(2) }}
- 只可能是 0 或 1
- 一定是 x 出现的任意次数
- 返回迭代器
- 返回最小元素
第 3 题
执行下面代码后,mp.size() 为( )。
map<int,int> mp;
cout << mp[8];
{{ select(3) }}
- 0
- 1
- 8
- 无法确定
第 4 题
若只想判断 map<int,int> mp 中 key=5 是否存在,又不希望创建新 key,最合适的是( )。
{{ select(4) }}
- 直接读取
mp[5] mp.count(5)mp[5]++mp[5]=0
第 5 题
若 vector<int> a 当前大小为 n>0,合法下标范围是( )。
{{ select(5) }}
- 1 到 n
- 0 到 n
- 0 到 n-1
- 任意整数
第 6 题
在 vector 中按下标访问 a[i] 的常见时间复杂度是( )。
{{ select(6) }}
O(1)O(log n)O(n)O(n^2)
第 7 题
执行下面代码后输出顺序是( )。
set<int> s;
s.insert(6);
s.insert(2);
s.insert(5);
s.insert(2);
for(int x:s) cout << x << " ";
{{ select(7) }}
6 2 52 5 62 2 5 66 5 2
第 8 题
执行下面代码后,第一次输出的 key 是( )。
map<int,int> mp;
mp[3]=30;
mp[1]=10;
mp[2]=20;
for(auto p:mp){ cout << p.first; break; }
{{ select(8) }}
- 1
- 2
- 3
- 30
第 9 题
执行下面代码后,a 中元素依次为( )。
vector<int> a={30,10,20};
a.insert(a.begin()+1,99);
a.erase(a.begin()+2);
sort(a.begin(),a.end());
{{ select(9) }}
- 10 20 30
- 20 30 99
- 10 30 99
- 30 99 20
第 10 题
下列容器中,“支持下标随机访问、允许重复、长度可动态变化”的是( )。
{{ select(10) }}
setmapvectorstack
作答要求
- 栈题:画清 栈底 / 栈顶。
- 队列题:标清 队首 / 队尾。
- 循环队列:每次移动都写出取模后的下标。
- 链表题:逐句修改
next箭头,不要只靠心算。 - STL 题:特别注意函数是否会改变容器内容。
粤公网安备44195502000252号