整理的C++笔试面试基础-02
书接上回
十三、STL容器
这里只简单的介绍下STL容器,详细的以后会补充。
STL容器是C++标准库的一部分,提供了许多应用于数据结构和算法的模板类,其中包括了很多的容器*(这里先列举这几个,之后补充):
- vector()---->可变大小的数组,类似动态数组。内部的实现是采用的动态数组,支持随机访问并且线性顺序排列;
- List()----> 双向链表,支持快速插入和删除,但是访问效率低下;
- deque()----> 双端队列,在头尾进行快速删除和插入;
- set()----> 集合,存储不重复的元素,并且对元素自动排序;
- map()----> 映射,存储键值对。
补充: map和set的区别:map实现了关联数组,通过键值对存储和访问元素,而set实现了集合,只存储键值而没有对应的值;map中的元素是键值对,并且键是唯一的,值可以重复;set中元素只有键;map通过键值对操作元素,set通过键来操作元素。
十四、简述strcpy、sprintf与memcpy的区别
- strcpy(dest, src):将一个字符串复制到另一个字符串中。//dest是目标字符串,src指向原字符串;
- memcpy():将一段内存中的内容复制到另一段内存当中。
- 三者区别:strcpy只能复制字符串,sprintf的操作源对象可以是多种数据类型,memcpy操作对象是任意两个可操作的内存地址,并不限制于何种数据类型。并且memcpy执行效率最高,sprintf执行效率最低;strcpy主要实现字符串变量间的拷贝,sprintf主要实现其他数据类型格式到字符串的转化,memcpy主要是内存块间的拷贝。
十五、简述sizeof 和 strlen 的区别
- sizeof是一个运算符,而strlen是一个库函数。它用于获取数据类型或变量所占用的字节数。它的作用不仅限于字符串,可以用于任何数据类型,包括基本数据类型、自定义数据类型、数组、指针等,而strlen只能用于以空字符\0结尾的字符串。
- sizeof获取的是数据类型或变量所占用的字节数,而strlen获取的是字符串的长度(不包括空字符\0)
十六、析构函数
- 一种特殊的成员函数,用来释放对象占用的资源,以波浪号开头,并且不包含任何参数也没有返回类型。
十七、重载和覆盖
- 重载是在同一个类中进行,同名函数的参数列表不相同;覆盖是为了实现多态性,同名函数的参数列表必须相同。
十八、构造函数
- 一种初始化对象的特殊方法,其名称必须与类名相同。