c++面试学习2

1. 排序算法及其比较次数

排序次数的数量级决定了排序算法的复杂度(作为个人纪录,下面图片写的不要清晰 见谅)

 

2. fgets(s,n,f)函数的功能:

原型是char *fgets(char *s, int n, FILE *stream);

从流中读取n-1个字符,除非读完一行,s用来接收字符串,如果读取成功返回s的指针,否则返回NULL。n-1是一次读取的长度,默认为1k,即1024。f是文件指针,就是从f这个文件输入流中读取n-1个字符保存到s中。

 

3.数据库中索引,簇索引,非簇,唯一,复合,覆盖索引的区别

数据库中的索引是一种用于提高查询效率的数据结构,包括簇索引、非簇索引、唯一索引、复合索引和覆盖索引。

数据表的索引从数据的存储方式上可以分为簇索引和非簇索引。簇索引和非簇索引是一种数据存储方式,

簇索引:使用主键作为索引,可以加速基于主键的查询,因为它将数据存储在按照主键排序的结构中,查找主键时可以直接定位到数据的物理位置,每个表只能创建一个簇索引。叶子节点就是数据节点。

非簇索引:非簇索引不按照主键排序,而是将主键和索引组合在一起存储,叶子节点包含的是索引字段值和指向数据页数据行的逻辑指针。每个表可以创建多个非簇索引。

簇索引的叶子节点就是数据节点,非簇索引的叶子节点仍是索引节点,只不过有指向对应数据块的指针。

 

4.C++中const修饰函数有什么作用

const int& fun(int& a); //修饰返回值
int& fun(const int& a); //修饰形参
int& fun(int& a) const{} //const成员函数

const修饰返回值:

 

 

const修饰成员函数,则这个成员函数不可以修改成员变量。但是如果成员变量前加mutable修饰,则可以修改该成员变量。

此外,如果声明对象前加const修饰,则是常对象,常对象只能调用常成员函数

 

posted @ 2023-06-11 13:44  阳光中的影子  阅读(2)  评论(0编辑  收藏  举报