kuaishou 1
- cpp 类 const函数 作用 效果 原因
- 面试官想听到的:别人用const对象调用我的non-const函数时,需要先转成non-const对象,定义一个const函数可以避免这一点
- const怎么转non-const?
- const MyClass obj{10};
- MyClass* nonConstObj = const_cast<MyClass*>(&obj);
- 构造函数可以是virtual吗?NO
- 析构函数为什么要设成virtual?
- 当使用基类指针指向派生类对象,并通过该指针删除对象时,如果基类的析构函数不是虚函数,那么只会调用基类的析构函数,而不会调用派生类的析构函数。
- 构造函数初始化列表能提高效率 为什么?
- 赋值构造需要创建两次对象,拷贝构造只用一次
- 多线程 a b 两个线程 a逻辑走得多 b走得少 同时操作一个变量 怎么设置逻辑保证优化?
- 互斥访问
- 避免饿死
- 公平锁
- try_lock
- try_lock原理是什么
- 按频率排序数组,频率相同的按出现顺序排序
- 这里我用了3个map,一个存频率,一个存第一次出现的索引,一个存频率-数的map,时间复杂度mlogm
- 面试官问更巧的办法:用频率+idx表示频率,先排序频率,频率相等再排序idx,相当于改cmp函数