八股面经总结-C++

目录

[C++基础]关键字与运算符

指针与引用

define 和 typedef 的区别

define 和 inline 的区别

override 和 overload

new 和 malloc

constexpr 和 const

volatile

extern

static

前置++ 和 后置++

C++三大特性

访问权限

1. 继承

2. 封装

3.  多态

虚函数

空类

抽象类与接口的实现

智能指针

1. shared_ptr

2. unique_ptr

3. weak_ptr

C++强制类型转换

1. static_cast

2. dynamic_cast

3. reinterpret_cast

4. const_cast

C++内存模型

字符串操作函数

内存泄漏

测试题目

1. 以下为WindowsNT 32位C++程序,请计算下面sizeof的值

2. 分析下面Test函数会有什么样的结果

3. 实现内存拷贝函数

4. 假如考虑dst和src内存重叠的情况,strcpy该怎么实现

5. 按照下面要求写程序

6. 说一说进程的地址空间分布

7. 说一说C与C++的内存分布方式

8. new、delete、malloc、free关系

计算机中的乱序执行

副作用

信号量

1.binary_semaphore

2. counting_semaphore

future库

运算符重载

不建议重载:

建议非成员:

函数调用运算符:

[C++ STL]

STL实现原理机器实现

容器

算法

迭代器

仿函数

适配器

空间配置器

 STL的优点

pair容器

vector容器实现与扩充

1. 底层实现

2. 扩容过程

3. vector源码

list-链表

list设计

vector 和 list 的区别

deque-双端数组

1. deuqe概述

2. deque中控器

stack 和 queue

 源码

heap and priority_queue

heap(堆):

 priority_queue:

map && set

3. 细节

map与unordered_map

底层实现

map

unordered_map

《Effective STL》

1. 慎重选择容器类型

2. 不要试图编写独立于容器的代码

3. 确保容器中的对象拷贝正确且高效

4. 调用empty而不是检查size()是否为0

5. 区间成员函数优先于之对应的单元素成员函数

6. 当心C++编译器的烦人的分析机制-尽可能的解释为函数声明

7.容器包含指针

8. 切勿创建包含auto_ptr的容器

9. 当你复制一个auto_ptr时

10. 慎重选择删除元素的方法

10.1 要删除容器中有特定值的所有对象

10.2 要在循环内部做某些(除了删除对象的操作之外)操作

11. 了解分配子的约定与概念

1. 首先分配子能够为它所定义的内存模型中的指针和引用提供类型的定义

2. 库实现者可以忽略类型定义而直接使用指针和引用

3. STL实现者可以假定所有属于同一类型的分配子都是等价的

4. 大多数标准容器从来没有单独使用过对应的分配子

12.编写自定义分配子需要什么?

13. 理解分配子的用法

14. 切勿对STL容器的线程安全性有不切实际的依赖

15. 当你在动态分配数组的时候,请使用vector和string

16. 使用reserve来避免不必要的重新分配

有两种方式避免不必要的内存分配

17. string实现的多样性

18. 了解如何把vector和string数据传给旧的API

19. 使用“swap技巧”删除多余的容量

20. swap的时候发生了什么

21. 避免使用vect,用deque和bitset代替它

22. 理解等价与相等

23. 熟悉非标准散列容器

24. 为包含指针的关联容器指定比较类型,而不是比较函数,最好是准备一个模板

25. 切勿直接修改set或multiset中的键

26.考虑用排序的vector替代关联容器

27. 更新一个已有的映射表元素

28.  iterator

29.使用distance和advance将容器的const_iterator转换为iterator

30. 正确理解由reserve_iteratorr的base()成员函数所产生的iterator的用法

31. istreambuf_iterator

32. 如果使用的算法需要指定一个目标空间

33. 了解各种与排序相关的选择

34. 如果要删除元素,需要在remove后面使用erase

35.对包含指针的容器使用remove这一类算法一定要小心

36. 了解那些算法要求使用排序的区间作为参数

37. 使用accumulate或者for_each进行区间统计

38. 遵循按值传递的原则来设计函数子类

41. 确保判别式是“纯函数”

42. 使你的函数子类可配接

43. 理解ptrfun && memfun && memfunref

44. 确保less与operator<的语义相同

45. 算法的调用优先于手写的循环

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python面经八股文是指在面试过程中经常会被问到的一些关于Python语言的基础知识问题。这些问题常常是考察面试者对Python语法、数据类型、函数库等方面的理解和应用。 第一个问题通常是问到Python的特点,比如动态语言、解释型语言等。随后可能会问到Python的命名规范,如变量名、函数名等的命名规则。 接下来可能会被问到Python的数据类型,如字符串、列表、字典和元组的特点和用法。还会询问如何行类型转换和切片操作。 然后可能会被问到Python的函数,包括如何定义函数、函数参数的类型和默认值,以及如何调用函数和返回值等。 接着可能会被问到Python的模块和库的使用,如time、datetime、random等常用模块的函数和方法。还可能问到如何处理文件、异常等知识点。 另外,面试者还可能会被问到Python的面向对象编程的相关知识,如类和对象的概念、实例化对象、继承和多态等。 最后,可能会被问到Python的常用框架和库,如Django、Flask和NumPy等。还可能会问到如何行数据库操作、网络编程等相关知识点。 在面试中回答这些问题需要准备充分,对Python的基础知识和常用库要熟悉,并能够清晰地表达自己的观点和经验。同时也可以结合项目经验等实际经历行回答,展示自己的实际应用能力。 ### 回答2: Python面经八股文主要包括以下几个方面: 一、Python基础知识: 1. 数据类型:了解Python中的常见数据类型,包括字符串、列表、元组、字典等,并能灵活运用。 2. 控制结构:熟悉Python的控制结构,如条件语句、循环语句和异常处理等,并能正确使用。 3. 函数和模块:了解函数和模块的概念,在项目中能够定义并调用函数,以及导入和使用模块。 4. 文件操作:了解Python中的文件操作方法,能够对文件行读写操作。 5. 面向对象编程:理解面向对象编程的概念,能够定义类、创建对象,并掌握继承、多态等特性。 二、Python常用库和框架: 1. Numpy:了解Numpy库的基本用法,包括数组的创建和操作,矩阵运算等。 2. Pandas:熟悉Pandas库的数据处理功能,包括数据的读取、清洗、排序、合并等。 3. Matplotlib和Seaborn:掌握Matplotlib和Seaborn库用于数据可视化的操作,能够生成各种统计图表。 4. Scikit-learn:熟悉Scikit-learn库的机器学习算法,能够行数据预处理、特征工程和模型训练等。 三、数据库操作: 1. SQL语言:了解SQL语言的基本语法,能够编写简单的SQL查询语句,实现数据的增删改查等操作。 2. MySQL或MongoDB:了解MySQL或MongoDB数据库的基本操作,包括连接数据库、创建表、插入数据等。 3. ORM框架:熟悉Django或SQLAlchemy等ORM框架的使用,能够行数据库的ORM操作。 四、Web开发: 1. Flask或Django:了解Flask或Django框架的基本使用方法,能够搭建简单的Web应用。 2. RESTful API:熟悉RESTful API的设计原则,能够使用Flask或Django开发和部署API接口。 3. HTML和CSS:掌握基本的HTML和CSS知识,能够行网页布局和样式设计。 总结起来,Python面经八股文主要包括Python基础知识、常用库和框架、数据库操作以及Web开发等内容。熟练掌握这些知识点,能够在面试中展现出扎实的编程基础和项目经验,提高自己的面试竞争力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值