学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

273

积分

0

好友

34

主题
发表于 2024-12-10 16:59:42 | 查看: 98| 回复: 0
来自:碧波

16. const 可以修饰那些内容

变量、指针和引用、函数、类对象或类指针、函数返回值。

17.  class 和 struct 的区别?有了class 为啥仍还保留 struct?

class 和 struct 用来定义 类 和 结构体,主要区别在于默认的访问权限不同(class 默认私有,struct 默认公有)

它们的区别主要体现在 成员默认的访问权限 和 继承方式 上:

在 class 中,默认的成员访问权限是 private,在 struct 中,默认的成员访问权限是 public

当没有显式指定继承方式时,class 默认是 private 继承,而 struct 默认是 public 继承。

虽然 class 和 struct 在语法上有一些细微差别,但其实它们提供了类似的功能。保留 struct 主要是为了提供语法上的灵活性和向后兼容性。

顺便吆喝一下,技术大厂,前后端测试捞人,近三周条件放宽,来看看!>>>
机会
二、标准库

1. 什么是STL?

STL 是 C++ 标准模板库的缩写。它是 C++ 标准库的一部分,提供了一组通用的模板类和函数,实现了常用的数据结构和算法,以及一些函数对象和迭代器概念,使得 C++ 程序员可以更加高效地进行编程。

容器

如 vector(动态数组)、deque(双端队列)、list(双向链表)、set(集合)、map(映射)等,这些容器提供了高效的数据存储和访问方式,各自适用于不同的需求和使用场景。

算法

如排序、搜索、合并等,这些算法独立于任何特定的容器类型,可以利用这些算法直接对容器进行操作。

迭代器

提供了一种统一的方式来遍历容器中的元素。

函数对象

即重载了函数调用操作符 () 的对象。比如比较、排序等。

适配器

用于修改容器的接口或行为,使其能够满足特定的需求。

2. 数组和vector的区别?
大小:数组的大小在创建时是固定的,而vector的大小是动态可变的。

内存分配:数组的内存分配在栈上(静态数组)或堆上(动态数组),而vector的内存总是动态分配的,通常在堆上。

功能:vector提供了许多内置的操作,如动态扩展、插入和删除等,而数组只能直接访问元素,不支持动态调整大小。

性能:vector在需要扩展时可能会重新分配内存,而数组的内存分配则不会改变。

3.  list 和 vector 的主要区别是什么?
存储方式: list 是一个双向链表,而 vector 是一个动态数组。

访问时间: list 不支持常数时间的随机访问,vector 支持常数时间的随机访问。

插入和删除: 在 list 中,在任意位置插入或删除元素。而在 vector 中,不太适合在中间插入或删除元素。

4. 在什么情况下使用 list 而不是 vector?
当你需要在容器的中间频繁插入和删除元素,而不是在末尾插入或删除时,list 更适合。

当你不需要随机访问元素,而是需要频繁进行插入和删除操作时,list 是更好的选择,因为它的这些操作在常数时间内完成。

5.  set 的底层数据结构是什么?
set 通常使用红黑树或其他自平衡的二叉搜索树实现。它确保所有元素是唯一的,并且保持排序状态,因此插入、删除和查找操作的时间复杂度是对数时间 (O(log n))。

温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-12-21 23:55 , Processed in 0.116125 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表