6-12 windows临界区、其他各种mutex互斥量

一:windows临界区二:多次进入临界区试验在“同一个线程”(不同线程就会卡住等待)中,windows中的相同临界区变量“代表的临界区的进入(EnterCriticalSection)可以被调用多次但是你调用了几次EnterCriticalSection,你就得调用几次LeaveCriticalSection(&my_winsec);class A{public: //把收到的消息(玩家命令)入到一个队列的线程 void inMsgRecvQueue() { for(int_windows mutex空间
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-13 补充知识、线程池浅谈、数量谈、总结

一:补充知识1.1、虚假唤醒: wait中要有第二个参数(lambda)并且这个lambda中要正确判断要处理的公共数据是否存在;wait(),notify_one(),notify_all()1.2、atomic+=是原子操作,a=a + 1不是cout<<atm<<endl; //读atm是个原子操作,但是整个这一行代码并不是个原子操作;atomic atm;atm = 0;auto atm2 = atm; //这种定义时初始化操作不允许,显示”尝试引用已删除的函
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-1 STL总述、发展史、组成,数据结构谈

000STL概述/* * (1)一些概念 * 1.c++标准库 standard library c++编译器自带,可以在代码中包含头文件直接使用。 * 引入的目的就是解决一些反复使用的功能,我们直接使用即可。 * 2.c++标准模板库,STL=standard template library。包含在c++标准库中,是c++标准库的核心。 * STL深刻影响着c++标准库 * 3.泛型编程 generic programming 使用模板template为主要的编程手段来编写代码。 *_stl发展历史
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-2 容器分类,array、vector容器精解

001容器分类和array容器的使用#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <array>using namespace std;int main(void){ //包含5个元素的数组 array<string, 5>mystring = { fsdfd_容器分类 vector array
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-3 容器的说明和简单应用例续

003deque和stack一些常见的容器#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include<queue>#include<map>#include <set>#include <unordered_set>using namespace std;
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-4 分配器概述、使用,工作原理说

004分配器的概念和一个简单分配器原理核心代码#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <list>using namespace std;int main(void){ //list<int, std::allocator<int>>myLis_分配器
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-5 迭代器的概念和分类

005迭代器概述与迭代器分类#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>using namespace std;//(3)验证迭代器所属种
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-6 算法概述、内部处理、使用范例

006算法概述与一些典型的算法应用举例#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include<algorithm>usi_.
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-7 函数对象回顾、系统函数对象及范例

007可调用队形与标准库中定义的可调用对象#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include<functional>u_8、 函数对象
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

8-8 适配器概念、分类、范例及总结

008适配器#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include <functional>using namespac_.
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-1 函数调用运算符、function类模板(未归类知识点)

001重载()函数对象#include<iostream>#include<cstdlib>using namespace std;void myFunction(int a_i){ cout << 这是我自定义的函数myFunction << endl; return;}//类实现的功能:返回一个大于等于0的数字,如果小于0,返回0class BiggerThanZero{public: //带一个参数的构造函数 Big
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-2 万能引用universal reference(未归类知识点)

003万能引用#include<iostream>#include<cstdlib>using namespace std;template <typename T>void myFunction(const T&value)//value的类型是const T&{ return;}void myFunction02(int&& tem)//参数是右值引用类型{ cout << 右值引用函数 &l_剥夺万能引用
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-3 理解模板类型推断、查看类型推断结果(未归类知识点)

004理解模板类型参数_查看类型推断结果#include<iostream>#include<cstdlib>#include <boost/type_index.hpp>using namespace std;//显示参数类型,这里不研究boost库template<typename T>//void myFunction01(T&tem)//T是类型模板参数,T是有类型的,tem是形参,tem也是有类型的void myFunct
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-4 引用折叠,转发、完美转发,forward(未归类知识点)

005引用折叠规则与引用的引用#include<iostream>#include<cstdlib>#include <boost/type_index.hpp>using namespace std;template<typename T>void myFunction01(T &&tem)//T是类型模板参数,T是有类型的,tem是形参,tem也是有类型的{ using boost::typeindex::type_id_
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-5 理解auto类型推断,auto应用场合(未归纳知识点)

009auto类型常规推断#include<iostream>#include<cstdlib>#include <boost/type_index.hpp>using namespace std;//显示参数类型,这里不研究boost库template<typename T>void myFunction01(T&tem)//T是类型模板参数,T是有类型的,tem是形参,tem也是有类型的{ using boost::type
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-6 详解decltype含义,decltype主要用途(未归类知识点)

014decltype含义和举例_用于推导类型#include<iostream>#include<cstdlib>#include <functional>using namespace std;class CT{public: int i; int j;};int testFunction(){ return 10;}const int&&myfunctionTest(void){ return 0;}i
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-7 可调用对象、std function、std bind(未归类知识点)

021可调用对象#include<iostream>#include<cstdlib>using namespace std;void myFunciton(int value){ cout << myFunciton函数执行了 << endl;}class TESTCLASS{public: void operator()(int value) { cout << 这是类中重载了()运算符的函数执行了 &
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-8 lambda表达式,for_each、find_if简介(未归类知识点)

028lambda表达式和捕获列表#include<iostream>#include<cstdlib>using namespace std;class CT{public: int m_i; void myFunction(int x,int y) { auto mylambda01 = [this]()//=或者&默认就有this访问 { return m_i;//因为前面已经有this,访问合法 }; }};int ma_std::for_each() +find_if()+ lambda 表达用法
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-9 lambda表达式捕获模式的陷阱分析和展示(未归类知识点)

035lambda常见陷阱_捕获列表中的引用_局部变量超出作用域#include<iostream>#include<iostream>#include<cstdlib>#include<functional>#include <vector>#include <algorithm>#include <ctime>using namespace std;//全局变量,每个元素都是function,每个元素_lambda引用捕获临时变量离开作用域后失效
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

9-10 可变参数函数、initializer_list、省略号形参(未归类知识点)

039可变参数列表initializer_list和可变参点点点类型#include<iostream>#include<iostream>#include<cstdlib>#include<functional>#include <vector>#include <algorithm>#include<initializer_list>#include<stdarg.h>//...的头文件us_可变参数转initializer_list
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0