page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6247 次

3096 个回答

0 赞同

unordered_map、unordered_set 底层原理及其相关面试题?

(1)unordered_map、unordered_set的底层原理 unordered_map的底层是一个防冗余的哈希表(采用除留余数法)。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,时间复杂 度为O(1);而代价仅仅是消耗比较多的内存。 使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数(一般使用除留取余...

回答于 2022-01-07 14:56

0 赞同

请你来说一下C++中struct和class的区别?

在C++中,class和struct做类型定义如下区别: 默认继承权限不同,class继承默认是private继承,而struct默认是public继承 class还可用于定义模板参数,像typename,但是关键字struct不能用于定义模板参数 C++保留struct关键字,主要有如下原因 保证与C语言的向下兼容性,C++必须提供一个struct C++中的struct定义必须...

回答于 2022-01-06 14:48

0 赞同

简述类成员函数的重写、重载和隐藏的区别?

(1)重写和重载主要有以下几点不同。 范围的区别:被重写的和重写的函数在两个类中,而重载和被重载的函数在同一个类中。 参数的区别:被重写函数和重写函数的参数列表一定相同,而被重载函数和重载函数的参数列表一 定不同。 virtual 的区别:重写的基类中被重写的函数必须要有virtual 修饰,而重载函数和被重载函数可...

回答于 2022-01-06 14:47

0 赞同

类型转换分为哪几种?各自有什么样的特点?

static_cast:用于基本数据类型之间的转换、子类向父类的安全转换、void*和其他类型指针之间的转换; const_cast:用于去除const或volatile属性; dynamic_cast:用于子类和父类之间的安全转换,可以实现向上向下转换,因为编译器默认向上转换总是安全的,而向下转换时, dynamic_cast具有类型检查的功能; dynamic_cas...

回答于 2022-01-06 14:46

0 赞同

RTTI是什么?其原理是什么?

RTTI即运行时类型识别,其功能由两个运算符实现: typeid运算符,用于返回表达式的类型,可以通过基类的指针获取派生类的数据类型; dynamic_cast运算符,具有类型检查的功能,用于将基类的指针或引用安全地转换成派生类的指针或引用。

回答于 2022-01-06 14:42

0 赞同

说一说c++中四种cast转换?

C++中四种类型转换是:static_cast, dynamic_cast, const_cast, reinterpret_cast 1、const_cast 用于将const变量转为非const 2、static_cast 用于各种隐式转换,比如非const转const,void*转指针等, static_cast能用于多态向上转化,如果向下转能成功但是不安全,结果未知; 3、dynamic_cast 用于动态类型转换。只能...

回答于 2022-01-06 14:41

0 赞同

C++的空类有哪些成员函数?

缺省构造函数。 缺省拷贝构造函数。 省析构函数。 赋值运算符。 取址运算符。 取址运算符 const 。 「注意」:有些书上只是简单的介绍了前四个函数。没有提及后面这两个函数。但后面这两个函数也是 空类的默认函数。另外需要注意的是,只有当实际使用这些函数的时候,编译器才会去定义它们。

回答于 2022-01-06 14:40

0 赞同

模板函数和模板类的特例化?

「引入原因」 编写单一的模板,它能适应多种类型的需求,使每种类型都具有相同的功能,但对于某种特定类型,如果要实现其特有的功能,单一模板就无法做 到,这时就需要模板特例化 「定义」对单一模板提供的一个特殊实例,它将一个或多个模板参数绑定到特定的类型或值上 (1)模板函数特例化 必须为原函数模板的每个模...

回答于 2022-01-06 14:40

0 赞同

为什么析构函数一般写成虚函数?

由于类的多态性,基类指针可以指向派生类的对象,如果删除该基类的指针,就会调用该指针指向的派生类析构函数,而派生类的析构函数又自动 调用基类的析构函数,这样整个派生类的对象完全被释放。如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除基类指针时,只会调 用基类的析构函数而不调用派生类析构函数,...

回答于 2022-01-06 14:38

0 赞同

什么是C++ STL?

C++ STL从广义来讲包括了三类:算法,容器和迭代器。 算法包括排序,复制等常用算法,以及不同容器特定的算法。 容器就是数据的存放形式,包括序列式容器和关联式容器,序列式容器就是list,vector等,关联式容器就是set,map等。 迭代器就是在不暴露容器内部结构的情况下对容器的遍历。

回答于 2022-01-06 14:27