interview icon indicating copy to clipboard operation
interview copied to clipboard

📚 C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。This repository is a summary of the basic knowledge of recruiting job seekers...

Results 27 interview issues
Sort by recently updated
recently updated
newest added

这个仓库原本只是我的个人笔记,鉴于越来越多人关注,而本人技术略渣,希望大家可以提些建议,或者可以在这个 issue 讨论些关于面试方面的东西。比如: * 需要增加什么知识点? * 如何分类排版才更高效地复习与检索? * 如何勘误,发现错误如何改正?(new issue、pull) * 如何提交或添加你的知识点、总结、面经?(new issue) * 等等 (本 issue 只涉及讨论、建议、疑问等方面,内容勘误、提交贡献还请新建一个 issue 或 pull)

question

create, delete, extract elements and heapify

面试的时候,有人问我线程安全方面的知识, 这里面是不是也得补充一下 啊, 大佬

写的是: >[dynamic_cast](https://github.com/huihut/interview#dynamic_cast) 用于多态类型的转换 **执行行运行时类型检查** 只适用于指针或引用 对不明确的指针的转换将失败(返回 nullptr),但不引发异常 可以在整个类层次结构中移动指针,包括向上转换、向下转换 **`dynamic_cast( 表达式 )`** 如果 表达式 是到[多态类型](https://zh.cppreference.com/w/cpp/language/object#.E5.A4.9A.E6.80.81.E5.AF.B9.E8.B1.A1) `Base` 的指针或引用,且 新类型 是到 `Derived` 类型的指针或引用,**那么会进行运行时检查**。 除此之外其他时候**基本上**是没有这种额外开销的。 并且它也可以用作其他的转换。 ```cpp struct X { }; struct Y :X...

描述的是: > [`extern “C”`](https://github.com/huihut/interview#extern-c) > * 被 extern 限定的函数或变量是 extern 类型的 > * 被 extern "C" 修饰的变量和函数是按照 C 语言方式编译和链接的 不管是第一句话还是第二句话,都是既**不严谨**,也**错误**的。 并且我严重怀疑抄了[知乎的一篇文章](https://zhuanlan.zhihu.com/p/123269132),描述简直一模一样。 1. “是 `extern` 类型的”,这话很莫名其妙,`extern` 不是类型。 非要狡辩一下那就是,写的时候想着:“语言链接是每个函数类型的一部分”;但也和 `extern` 没关系。 2....

它并非标准的,一般情况下不该去使用它。 可使用标准的 [`alignas`](https://zh.cppreference.com/w/cpp/keyword/alignas) 和 [`alignof`](https://zh.cppreference.com/w/cpp/keyword/alignof) 运算符。

你们描述的是: > 方法:将 new 和 delete 重载为私有 事实上在我看来毫无价值,你设置私有,那我不让它优先查找内部的不就是,加有限定名字查找 `::` 优先查找全局的 `operator new` 和 `operator delete` 不就是。 除了逆天的 `msvc` 有限定名字查找有问题,`gcc` 和 `clang` 都可以直接使用。[`code`运行](https://godbolt.org/z/T5e8cWbMf)。 ```cpp #include struct X{ int n{}; X() {...

在内联函数中,所有函数定义中的函数局部静态对象在所有翻译单元间共享(它们都指代相同的在某一个翻译单元中定义的对象)所有函数定义中所定义的类型同样在所有翻译单元中相同。 命名空间作用域的内联 const 变量默认具有外部链接(这点与非内联非 volatile 的有 const 限定的变量不同) | (C++17 起) -- | -- 在内联函数中, 所有函数定义中的函数局部静态对象在所有翻译单元间共享(它们都指代相同的在某一个翻译单元中定义的对象) 所有函数定义中所定义的类型同样在所有翻译单元中相同。 命名空间作用域的内联 const 变量默认具有[外部链接](https://zh.cppreference.com/w/cpp/language/storage_duration#.E5.A4.96.E9.83.A8.E9.93.BE.E6.8E.A5)(这点与非内联非 volatile 的有 const 限定的变量不同) (C++17 起) inline 关键词的本意是作为给优化器的指示器,以指示优先采用[函数的内联替换](https://en.wikipedia.org/wiki/inline_expansion)而非进行函数调用,即并不执行将控制转移到函数体内的函数调用 CPU 指令,而是代之以执行函数体的一份副本而无需生成调用。这会避免函数调用的开销(传递实参及返回结果),但它可能导致更大的可执行文件,因为函数体必须被复制多次。...