#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) }}

  • findcount
  • 直接写mp[key]++
  • clear
  • size

第 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) }}

  • O(logn)O(\log n)
  • O(1)O(1)最坏固定
  • O(n2)O(n^2)
  • O(2n)O(2^n)

第 15 题

下列说法正确的是( )。

{{ select(15) }}

  • 不同容器适合不同操作,应按需求选择
  • set在所有场景都优于vector
  • map可以替代所有数组
  • vector的中间插入永远O(1)