C++类型转换有哪些?C++虚函数的原理智能指针有哪些?应用场景?select, poll, epoll的原理、区别、优缺点std::sort的底层实现lamda表达式的本质?std::vector的size和capacity,扩容机制往std::vector中用push_back添加n个元素,总时间复杂度是多少?std::vector怎么缩容?C++的完美转发是什么?删除和新增STL容器中的元素,迭代器会失效吗?STL有哪些组件?介绍一下仿函数,它有什么作用?STL容器是线程安全的吗?类的深拷贝和浅拷贝如何实现一个简单的“写时拷贝”类?malloc和free是线程安全的吗?什么是静态链接和动态链接?分别是如何链接的?程序运行时内存模型?std::unordered_map和std::map的底层实现?std::map元素有序吗?std::unordered_map查询的时间复杂度?什么时候退化成O(n)?怎么优化?std::unordered_map的负载因子是什么?go有个关键字defer,用于在函数结束时自动调用,C++如何实现类似功能?STL中的内存分配器是怎么实现的?std::move是什么?怎么实现?std::forward是什么?怎么实现(参见C++ primer)auto和decltype的作用和区别?new和malloc区别?C++如何避免内存泄漏?如何排查?构造函数和析构函数可以定义为虚函数吗?析构函数什么时候需要定义为虚函数?构造函数和析构函数可以抛出异常吗?构造函数中能调用虚函数吗?会发生多态吗?频繁地申请和释放堆区空间,有什么坏处?怎么解决?if else 语句和 switch 语句哪个性能更好?以下代码会发生什么?struct Logger { void log(const string &msg) { cout << msg << endl; }}int main() { Logger *p = nullptr; p->log("hello"); // 会发生空指针异常吗?输出什么?}{nowcoder-vote}{126718}