#P1400. Day3.5 STL set、map 与容器选择(15题)
Day3.5 STL set、map 与容器选择(15题)
第 1 题
set<int> 的两个主要特点是( )。
{{ select(1) }}
- 元素唯一且有序
- 允许重复且无序
- 只能存字符串
- 支持下标随机访问
第 2 题
写出程序输出(只填数字)。
set<int> s; s.insert(3); s.insert(1); s.insert(3); cout<<s.size();
{{ input(2) }}
第 3 题
对set调用 count(x),返回值通常是( )。
{{ select(3) }}
- 0或1
- 任意负数
- 固定为2
- 元素下标
第 4 题
需要保留重复元素并自动有序,应使用( )。
{{ select(4) }}
- multiset
- set
- map
- vector
第 5 题
写出程序输出(只填数字)。
multiset<int> s={2,2,3}; cout<<s.count(2);
{{ input(5) }}
第 6 题
map<string,int> 保存的是( )。
{{ select(6) }}
- 键值对
- 只有键
- 只有值
- 连续数组下标
第 7 题
写出程序输出(只填数字)。
map<string,int> cnt; cnt["cat"]++; cnt["cat"]+=2; cout<<cnt["cat"];
{{ input(7) }}
第 8 题
对不存在的键执行 map<string,int> mp; cout<<mp["x"];,整数值会被默认构造为( )。
{{ select(8) }}
- 0
- -1
- 1
- 随机数
第 9 题
若只想检查map中是否存在键且不想创建它,更合适的是( )。
{{ select(9) }}
find或count- 直接写
mp[key]++ clearsize
第 10 题
关于 unordered_map,正确的是( )。
{{ select(10) }}
- 不保证按键有序,查找平均O(1)
- 始终按键排序
- 支持下标访问第k小键
- 查找固定O(n^2)
第 11 题
需要频繁按下标访问并在尾部添加,首选( )。
{{ select(11) }}
- vector
- set
- map
- multiset
第 12 题
需要自动去重并按升序遍历,首选( )。
{{ select(12) }}
- set
- vector但不做任何处理
- unordered_map
- pair
第 13 题
需要统计单词出现次数,首选的数据结构之一是( )。
{{ select(13) }}
- map或unordered_map
- pair单独一个
- bool
- 只有stack
第 14 题
set和map的插入、删除、查找常见复杂度是( )。
{{ select(14) }}
- 最坏固定
第 15 题
下列说法正确的是( )。
{{ select(15) }}
- 不同容器适合不同操作,应按需求选择
- set在所有场景都优于vector
- map可以替代所有数组
- vector的中间插入永远O(1)