![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
#面试宝典
文章平均质量分 90
主要讲解C++面试的一些常见的题目和基础知识
流星雨爱编程
记录工作的日常,心得体会
展开
-
史上最全C/C++面试题集锦
select、poll、epoll都是IO多路复用的一种机制,可以监视多个文件描述符,一旦某个文件描述符进入读或写就绪状态,就能够通知系统进行相应的读写操作。Select优点:可移植性好,因为在某些Unix系统中并不支持poll和epoll对于超时时间提供了更好的精度:微妙,而poll和epoll都是毫秒级Select缺点:支持监听的文件描述符fd的数量有限制,最大数量默认是1024个。原创 2024-05-20 22:58:51 · 784 阅读 · 10 评论 -
C++中不使用中间变量交换两个变量值的方式
此算法能够实现是由异或运算的特点决定的,通过异或运算能够使数据中的某些位翻转,其他位不变。3) 在实际编程中,如果对变量的值范围有明确的了解,并且确信不会导致溢出,可以使用算术运算符进行交换。这种算法先将a和b的值赋给a,之后b等于a-b,这是b的值就变成了原来的a,最后a=a-b,a的值变为原来的b。如果a和b的值非常大,相加后可能会导致整数溢出,从而导致交换后的值不正确。交换两个数的值是比较基础也比较常用的算法,一般在交换两数的值是,最简单的方法适用的方法就是。^ : 异或运算,转成2进制,再相加。原创 2024-04-20 22:11:48 · 578 阅读 · 10 评论 -
LeetCode第797题: 所有可能的路径
这题让在有向无环图中输出从顶点0到顶点n-1的所有路径,可以使用dfs,从顶点0开始搜索,搜索所有路径,因为是无环的,所以搜索的时候不会出现死循环。问题是要找到0节点到n − 1节点的所有路径,对于所有路径的问题,我们可以用深度优先搜索来做(广度优先搜索也可以)。graph[i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节点 graph[i][j]存在一条有向边)。给你一个有 n 个节点的有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)。原创 2024-04-18 22:06:15 · 394 阅读 · 9 评论 -
原生数组和std::array异同
std::array的优点:固定大小:std::array的大小在编译时确定,这有助于避免运行时的大小检查和可能的性能开销。更好的类型安全:与原生数组相比,std::array提供了更好的类型安全,因为它是一个类模板,而不是简单的数组类型。支持STL算法:由于std::array提供了迭代器接口,因此可以很方便地与STL算法一起使用。成员函数和接口:std::array提供了一系列有用的成员函数,如size(), empty(), begin(), end()等,这些功能在原生数组上是没有的。原创 2024-04-08 23:14:46 · 1144 阅读 · 9 评论 -
C/C++中decltype关键字用法总结
decltype可以作用于变量、表达式及函数名。①作用于变量直接得到变量的类型;②作用于表达式,结果是左值的表达式得到类型的引用,结果是右值的表达式得到类型;③作用于函数名会得到函数类型,不会自动转换成指针。总的来说,decltype在C++中是一个非常强大的工具,它允许开发者以更简洁和灵活的方式处理复杂的类型问题。原创 2024-04-06 10:24:20 · 1327 阅读 · 5 评论 -
C/C++中const关键字用法总结
使用const还有很多好处:1) 类型安全:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误。2) 可以节省空间,避免不必要的内存分配: const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象宏一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而宏定义的常量在内存中有若干个拷贝。原创 2024-04-05 18:58:59 · 965 阅读 · 1 评论 -
C/C++中static关键字用法总结
在使用关键字static的时候,我们需要注意一下几个原则:被static修饰的变量的存储位置都在静态区,且生命周期延长至整个程序运行结束。static具有隔离作用,被static修饰的全局变量和全局函数的作用域由全局变为当前文件。静态变量虽然具有全局变量的生命周期,但只能作用于自己的作用域。普通静态成员需要在类的外面进行初始化。静态成员函数不能调用类的非静态成员,包括非静态成员和非静态成员函数。原创 2024-04-04 22:37:55 · 1077 阅读 · 7 评论 -
腾讯C++面试题分享
在 C 语言中,如果定义一个全局变量但不进行显式初始化,那么该全局变量会被默认初始化为零值。具体的默认值取决于变量的类型:对于整型(int、char、long 等)和枚举类型,在未显式初始化时,默认值为 0。对于浮点型(float、double 等),默认值为 0.0。对于指针类型,默认值为 NULL。原创 2024-04-02 21:30:06 · 932 阅读 · 4 评论 -
面试指南:C++之STL知识点
出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队。erase删除pos位置元素后,pos位置之后的元素会往前移动,没有导致底层空间的改变,理论上讲迭代器应该不会失效,但是如果pos刚好是最后一个元素,删完之后pos刚好是end位置,而end位置是没有元素的,那么pos就失效了。在一般的程序函数里,局部容器,参数传递容器,参数传递容器的引用,参数传递容器指针都是可以正常运行的,而在动态链接库函数内部使用容器也是没有问题的,但是给动态库函数传递容器的对象本身,则会出现内存堆栈破坏的问题。原创 2024-02-20 09:13:29 · 1567 阅读 · 12 评论 -
C++技术要点总结, 面试必备, 收藏起来慢慢看
如果在头文件中定义全局变量,当该头文件被多个文件 include 时,该头文件中的全局变量就会被定义多次,导致重复定义,因此不能再头文件中定义全局变量。内存泄漏:由于疏忽或错误导致的程序未能释放已经不再使用的内存。并非指内存从物理上消失,而是指程序在运行过程中,由于疏忽或错误而失去了对该内存的控制,从而造成了内存的浪费。常指堆内存泄漏,因为堆是动态分配的,而且是用户来控制的,如果使用不当,会产生内存泄漏。原创 2024-01-26 10:03:48 · 1928 阅读 · 11 评论 -
面试指南:指针
在我的博客C++高质量编程-CSDN博客内存管理章节里面讲了一些内存的基础知识,内存管理涉及最多的就是指针,也详细讲解了指针的原理以及平时编程使用指针犯的错误,不太熟悉的可以去看看,现在就对面试问的比较多的关于指针的问题归纳总结一下,希望对看到这篇博客的同学们有所帮助。原创 2024-01-06 22:06:39 · 1179 阅读 · 0 评论 -
C++高质量编程
这个是林锐博士整理出来的C++高质量编程指南,我写了十多年的代码,早期也是以这些经典资料为范本,经常阅读,对我的成长有很大的帮助。现在把它整理出来,希望对看到这边博客的人有所帮助。转载 2023-12-28 19:59:57 · 276 阅读 · 2 评论 -
LeetCode第32题 : 最长有效括号
给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。输入:s = "(()"输出:2解释:最长有效括号子串是 "()"输入:s = ")()())"输出:4解释:最长有效括号子串是 "()()"原创 2024-01-02 22:53:31 · 680 阅读 · 1 评论