C++面试八股文:如何避免死锁?
某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: 面试官:什么是锁?有什么作用? 二师兄:在C++中,锁(Lock)是一种同步工具,用于保护共享资源,防止多个线程同时访问,从而避免数据竞争和不一致。 面试官:有哪些锁? 二师兄:从种类上分,可以分为普通锁、读写锁、递归锁等种类。 二师兄:从实现上分,可以分为互斥锁、自旋锁、信号量、条件变量等。 面试官:互斥锁如何使用? 二师兄:在C+
C/C++编程 2024年01月21日 64
string(9) "八股文"
某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: 面试官:什么是锁?有什么作用? 二师兄:在C++中,锁(Lock)是一种同步工具,用于保护共享资源,防止多个线程同时访问,从而避免数据竞争和不一致。 面试官:有哪些锁? 二师兄:从种类上分,可以分为普通锁、读写锁、递归锁等种类。 二师兄:从实现上分,可以分为互斥锁、自旋锁、信号量、条件变量等。 面试官:互斥锁如何使用? 二师兄:在C+
C/C++编程 2024年01月21日 64
不知不觉,《C++面试八股文》已经更新30篇了,这是我第一次写技术博客,由于个人能力有限,出现了不少纰漏,在此向各位读者小伙伴们致歉。 为了不误导更多的小伙伴,以后会不定期的出勘误文章,请各位小伙伴留意。 在《C++面试八股文:C++中,设计一个类要注意哪些东西?》一文中, #include <iostream> struct Foo{}; struct Goo { void
C/C++编程 2023年10月20日 93
某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: 面试官:strcpy函数使用过吧? 二师兄:用过。 面试官:这个函数有什么作用? 二师兄:主要用做字符串复制,将于字符从一个位置复制到另一个位置。 面试官:strncpy函数也使用过吧,和strcpy有何不同? 二师兄:strncpy多了一个size_t的参数,用于避免缓冲区溢出。 面试官:能否实现一个strncpy函数
C/C++编程 2023年09月30日 59
某日二师兄参加XXX科技公司的C++工程师开发岗位第27面: 面试官:知道std::unordered_set/std::unordered_map吗? 二师兄:知道。两者都是C++11引入的新容器,和std::set和std::map功能类似,key唯一,unordered_map的value可变。 二师兄:不同于set/map,unordered_set/unordered_map都是无序容
C/C++编程 2023年08月10日 73
C/C++编程 2023年07月27日 86
某日二师兄参加XXX科技公司的C++工程师开发岗位第27面: 面试官:用过std::set/std::map吗? 二师兄:用过。 面试官:能介绍一下二者吗? 二师兄:std::set是一个有序的集合,其中的元素是唯一的,即每个元素只能出现一次。一般用于去重和自动排序。 二师兄:std::map同样是有序组合,只不过它不止有key,每个key还对用一个value。其中key是唯一,不可重复,但是v
C/C++编程 2023年07月20日 68
某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: 面试官:strcpy函数使用过吧? 二师兄:用过。 面试官:这个函数有什么作用? 二师兄:主要用做字符串复制,将于字符从一个位置复制到另一个位置。 面试官:strncpy函数也使用过吧,和strcpy有何不同? 二师兄:strncpy多了一个size_t的参数,用于避免缓冲区溢出。 面试官:能否实现一个strncpy函数? 二师兄:好
C/C++编程 2023年07月12日 71
某日二师兄参加XXX科技公司的C++工程师开发岗位第30面: 面试官:什么是空指针? 二师兄:一般我们将等于0/NULL/nullptr的指针称为空指针。空指针不能被解引用,但是可以对空指针取地址。 int* p = nullptr; //空指针 *p = 42; //空指针不可以解引用 int** pp = &p //空指针可以取地址 面试官:你知道0/NULL/nullptr三
C/C++编程 2023年07月11日 76
某日二师兄参加XXX科技公司的C++工程师开发岗位第29面: 面试官:什么是构造函数? 二师兄:构造函数是一种特殊的成员函数,用于创建和初始化类的对象。构造函数的名称与类的名称相同,并且没有返回类型。构造函数在对象被创建时自动调用。 struct Foo { Foo(int v):val(i){} //构造函数 private: int val; }; 面试官:什么是默认构造函数
C/C++编程 2023年07月11日 82