- 博客(6)
- 收藏
- 关注
原创 C++多线程函数记录
1. CreatThread 产生一个线程,成功则返回一个handle,失败可调用GetLastError()获知原因 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, //新线程security属性,NULL表示缺省 SIZE_T dwStackSize, //新线程堆栈大小,0表示缺省:1MB LPTHREAD_START_ROUTINE lpStartA
2022-01-11 18:30:02
776
原创 C++内存管理:内存池实现
示例1:在类中提前分配一块连续的内存池,减少cookie(分配内存时产生的头尾共8个字节,用于记录分配了多少内存)对内存的消耗 class Screen { public: Screen(int x) : i(x) {} int getData() { return i; } void* operator new(size_t); void operator delete(void*, size_t); private: static Screen* freeStore;//对象的内存地址
2022-01-03 17:51:20
1188
原创 C++11新特性:Alias Template + Template Template Parameter
Alias Template :模板别名 方便使用自定义的容器,使用 #define 或 typedef 达不到同样的效果 用法: template<typename T> using Vec = vector<T, MyAlloc<T>>; //MyAlloc是自定义的分配器,allocator用于分配内存 Template Template Parameter:模板模板参数 ...
2022-01-01 13:05:13
569
原创 C++新特性:initializer_list<>
此类型用于访问 C++ 初始化列表中的值,值由array存储,类内包含一个指向array的指针。 应用: ①初始化容器: vector<int> v {1,2,3,4}; //{ } 内就用到了initializer_list ②类似 Variadic Templates 的用法,可以包含多个参数,但是参数类型必须相同 template<class T> void myPrint(initializer_list<T> vals) { for (auto
2021-12-31 19:09:40
440
原创 C++11新特性:Variadic Templates
数量不定的模板参数,后续可添加任意类型参数,函数内部递归调用,逐一取出每个元素 注意点 : 1、... 就是一个pack(包),要注意三个 ... 的位置。①模板参数包 ②函数参数类型包 ③函数参数包 2、需要一个空的重载函数来应对最后一次函数递归参数为空的情况 3、 sizeof...(包参数名) 可知包内参数个数 示例: //空重载函数 void myPrint() {} template <typename T, typename... Types> void my
2021-12-31 15:12:15
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅