还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
stl常见面试题及答案
一、单项选择题(共30题,每题1分)(注每题只有一个正确答案,将正确选项的字母填入括号中)
1.以下哪个不是STL标准容器()A.vectorB.listC.mapD.string
2.vector容器的底层数据结构是()A.链表B.动态数组C.哈希表D.红黑树
3.当向vector中插入元素导致容量不足时,会触发()操作A.扩容B.压缩C.复制D.无需操作
4.list容器不支持的迭代器类型是()A.随机访问迭代器B.双向迭代器C.前向迭代器D.输入/输出迭代器
5.以下哪种容器的插入和删除操作在中间位置的效率最高()A.vector第1页共12页B.dequeC.listD.array
6.map容器的底层通常采用的结构是()A.哈希表B.平衡二叉搜索树(红黑树)C.链表D.动态数组
7.unordered_map相比map的主要优势是()A.有序性B.插入/查询效率更高(平均O1vs Ologn)C.内存占用更小D.支持范围查询
8.以下哪个算法的时间复杂度为On logn()A.sortB.findC.copyD.for_each
9.STL中,用于遍历容器并执行操作的算法是()A.accumulateB.for_eachC.max_elementD.minmax_element
10.以下关于迭代器失效的说法,正确的是()A.vector的push_back操作一定会导致迭代器失效第2页共12页B.list的erase操作会使指向被删除元素的迭代器失效C.map的erase操作会使被删除键对应的迭代器失效D.deque的push_front操作不会导致迭代器失效
11.以下哪个不是STL的六大组件()A.容器B.算法C.迭代器D.编译器
12.容器适配器不包括以下哪个()A.stackB.queueC.priority_queueD.vector
13.STL中,unique_ptr的主要作用是()A.管理动态内存,防止内存泄漏B.实现容器的自动扩容C.作为关联式容器的键D.加速算法执行效率
14.以下关于allocator的说法,错误的是()A.用于管理容器的内存分配和释放B.可自定义内存分配策略C.是容器的核心组件之一D.必须通过new/delete来分配内存
15.以下哪种迭代器支持+=、-=操作()A.输入迭代器第3页共12页B.随机访问迭代器C.双向迭代器D.前向迭代器
16.当vector的元素类型为自定义类时,需要确保该类已定义()A.默认构造函数B.拷贝构造函数C.移动构造函数D.析构函数
17.以下哪个算法可用于计算容器元素的总和()A.accumulateB.sumC.addD.accumulate_sum
18.以下关于set和multiset的区别,正确的是()A.set允许重复元素,multiset不允许B.multiset允许重复元素,set不允许C.set是无序的,multiset是有序的D.set和multiset无区别
19.以下哪个容器支持高效的头部和尾部插入删除()A.vectorB.dequeC.listD.array
20.以下关于string容器的说法,错误的是()A.支持动态扩容第4页共12页B.可直接通过[]访问元素C.底层是动态数组D.不支持+=操作
21.STL算法中的sort函数默认采用的排序方式是()A.冒泡排序B.快速排序C.归并排序D.堆排序
22.以下哪个迭代器类型的遍历方式是单向的()A.随机访问迭代器B.双向迭代器C.前向迭代器D.输入迭代器
23.当vector调用reserven后,若n小于当前容量,会发生()A.容量变为nB.容量不变C.容量变为原容量的
1.5倍(或2倍)D.直接报错
24.以下哪个不是STL中的智能指针()A.auto_ptrB.unique_ptrC.shared_ptrD.raw_ptr
25.以下关于map的说法,正确的是()A.键可以重复第5页共12页B.键必须唯一C.值可以重复D.键值对可以重复
26.以下哪个算法用于查找元素并返回迭代器()A.findB.searchC.find_ifD.all_of
27.以下哪种容器的元素在内存中连续存储()A.listB.dequeC.vectorD.forward_list
28.以下关于迭代器失效的描述,正确的是()A.map的insert操作可能导致迭代器失效B.vector的pop_back操作会使一个元素的迭代器失效C.list的insert操作会使插入位置之后的迭代器失效D.unordered_map的erase操作会使被删除键对应的迭代器失效
29.STL中,用于判断容器中所有元素是否满足条件的算法是()A.all_ofB.any_ofC.none_ofD.find_if
30.以下哪个不是STL的设计原则()A.泛型化第6页共12页B.效率优先C.代码冗余D.可复用
二、多项选择题(共20题,每题2分)(注每题有多个正确答案,多选、少选、错选均不得分)
1.以下属于STL序列式容器的有()A.vectorB.listC.setD.dequeE.map
2.以下关于vector的说法,正确的有()A.支持随机访问B.插入删除中间元素效率低C.内存空间连续D.扩容时会重新分配内存E.初始容量一定为
03.以下属于STL关联式容器的有()A.setB.multisetC.unordered_setD.mapE.unordered_map
4.以下关于迭代器的说法,正确的有()A.输入迭代器支持++操作第7页共12页B.随机访问迭代器支持+=n操作C.双向迭代器支持--操作D.前向迭代器支持解引用*E.所有迭代器都支持比较操作
5.以下算法中,时间复杂度为On的有()A.findB.sortC.for_eachD.accumulateE.max_element
6.以下属于STL适配器的有()A.stackB.queueC.priority_queueD.reverse_iteratorE.back_insert_iterator
7.以下关于unordered_map的说法,正确的有()A.底层通常是哈希表B.键值对无序C.查找效率平均O1D.键必须支持哈希函数E.不支持[]运算符
8.以下会导致vector迭代器失效的操作有()A.push_backB.insert第8页共12页C.eraseD.reserveE.resize
9.以下关于STL中智能指针的说法,正确的有()A.unique_ptr不允许复制,只能移动B.shared_ptr通过引用计数管理内存C.auto_ptr已被C++11弃用D.weak_ptr可解决shared_ptr循环引用问题E.智能指针可避免内存泄漏
10.以下属于STL算法头文件的有()A.algorithmB.numericC.functionalD.iteratorE.vector
11.以下关于list的说法,正确的有()A.底层是双向链表B.插入删除中间元素效率高C.不支持随机访问D.迭代器不支持+1操作E.内存空间不连续
12.以下关于STL中比较器的说法,正确的有()A.map默认使用less作为比较器B.set可自定义比较器C.比较器必须返回bool值第9页共12页D.unordered_map不支持自定义比较器E.比较器会影响容器元素的排序
13.以下属于STL中常用的函数对象的有()A.plusB.lessC.greaterD.not1E.for_each
14.以下关于deque的说法,正确的有()A.底层由多个缓冲区组成B.支持头部和尾部高效插入删除C.支持随机访问D.内存空间连续E.扩容时不会移动所有元素
15.以下会导致map迭代器失效的操作有()A.insertB.eraseC.clearD.operator[]E.swap
16.以下关于STL中容器的说法,正确的有()A.array是固定大小的序列容器B.forward_list是单向链表C.multiset允许重复元素D.priority_queue默认是最大堆第10页共12页E.所有容器都支持empty操作
17.以下算法中,属于修改型算法的有()A.copyB.transformC.replaceD.uniqueE.sort
18.以下关于STL中内存管理的说法,正确的有()A.容器默认使用allocator作为内存分配器B.自定义allocator需继承std::allocatorC.内存分配器负责元素的构造和析构D.allocator的allocate分配原始内存E.内存分配器可提高内存使用效率
19.以下关于迭代器分类的说法,正确的有()A.输入迭代器支持*和++B.输出迭代器支持*和++C.前向迭代器支持*、++、==D.双向迭代器支持*、++、--、==E.随机访问迭代器支持所有指针运算
20.以下关于STL中字符串处理的说法,正确的有()A.string支持+=操作B.string可直接与C风格字符串比较C.to_string可将数值转为字符串D.substr用于截取子串E.string的size和length功能相同第11页共12页
三、判断题(共20题,每题1分)(注对的打“√”,错的打“×”)
1.vector的capacity表示当前存储元素的个数()
2.list的splice操作可将一个list的元素转移到另一个list中()
3.map和set都是有序容器,默认按升序排列()
4.unordered_map的迭代器遍历顺序是不确定的()
5.vector的reserven会改变容器的大小()
6.STL算法中的sort函数是稳定排序()
7.双向迭代器支持+=n操作()
8.当vector的元素类型为int时,无需自定义拷贝构造函数()
9.unique_ptr可以赋值给另一个unique_ptr()
10.multiset允许重复元素,且元素有序()第12页共12页。
个人认证
优秀文档
获得点赞 0