C++ 知识点
- 资源管理
- 内存管理
- heap
- new/delete
- malloc/free
- stack
- RAII
- heap
- 内存管理
- 右值和移动语义
- 移动语义使得在 C++ 里返回大对象的函数和运算符成为现实
- 返回值优化 NRVO
- 标准容器
- string 是模版 basic_string 对于 char 类型的特化
- vector
- deque
- list
- forwar_list
- queue
- stack
-
函数对象 less
template <class T> struct less : binary_function<T, T, bool> { bool operator()(const T& x, const T& y) const { return x < y; } };
-
函数对象 hash 的特化
template <class T> struct hash; template <> struct hash<int> : public unary_function<int, size_t> { size_t operator()(int v) const noexcept { return static_cast<size_t>(v); } };
- priority_queue
- set -> multiset
- map -> multimap
- unordered_set -> unordered_multiset
- unordered_map -> unordered_multimap
- array
- Unicode
- ASCII
- 编译期多态——泛型编程和模板
-
特化模板
template <> cln::cl_I my_mod<cln::cl_I>( const cln::cl_I& lhs, const cln::cl_I& rhs) { return mod(lhs, rhs); }
-
-
编译期计算——模板元编程
template <int n> struct factorial { static const int value = n * factorial<n - 1>::value; }; template <> struct factorial<0> { static const int value = 1; };
- trait
- SFINAE
- 函数式编程
- 并发编程
References