11.1 描述map
和vector
的不同。
答:
map
是关联容器, vector
是顺序容器。
11.2 分别给出最适合使用list
、vector
、deque
、map
以及set
的例子。
答:
list
:双向链表,适合频繁插入删除元素的场景。vector
:适合频繁访问元素的场景。deque
:双端队列,适合频繁在头尾插入删除元素的场景。map
:字典。set
:适合有序不重复的元素的场景。
11.3 编写你自己的单词计数程序。
答:
11.4 扩展你的程序,忽略大小写和标点。例如,"example."、"example,"和"Example"应该递增相同的计数器。
答:
11.5 解释map
和set
的区别。你如何选择使用哪个?
答:
map
是键值对,而 set
只有键没有值。当我需要存储键值对的时候使用 map
,而只需要键的时候使用 set
。
11.6 解释set
和list
的区别。你如何选择使用哪个?
答:
set
是有序不重复集合,底层实现是红黑树,而 list
是无序可重复集合,底层实现是链表。
11.7 定义一个map
,关键字是家庭的姓,值是一个vector
,保存家中孩子(们)的名。编写代码,实现添加新的家庭以及向已有家庭中添加新的孩子。
答:
11.8 编写一个程序,在一个vector
而不是一个