C++多线程入门(二)mutex互斥量
一、mutex类1.使用线程中可能遇到的问题来看下面的一段代码: 123456789101112131415161718192021222324252627#include <iostream>#include <thread>using std::cin;using std::cout;int sum = 0;void add(){ for (int i = 0; i < 1000000; i++) { sum++; }}int main(){ std::ios::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr); std::thread t1(add); std::thread t2(add); t1.join(); t2.join(); cout << sum << "\n"; return...
C++多线程入门(一)thread类介绍
一、thread类1.class threadclass thread用于创建线程。 转自std::thread -...
C++模板入门(一)函数模板
一、函数模板初探1.定义模板1234template <typename T>T max(T a, T b) { return a > b ? a : b;} 在这个例子中template<>角括号中是使用逗号分隔的参数列表,template是类型参数的引导字,这是目前为止最典型的模板参数用法,但模板也可以使用除类型外的其他参数,我们将在之后进行介绍。 需要注意的两点是:1.使用的类型T必须支持>号操作。2.因为采用按值返回,所以T的类型也必须是可拷贝的。 鉴于历史原因,可以使用class关键字代替typename,因为typename一词在C++98标准中引进,由于历史原因便保留了class 关键字,但要注意这不是类的概念,所以不能使用struct替代typename。 2.使用模板1234int a1 = 1, a2 = 2;std::cout << ::max(a1, a2) << "\n";double b1 = 1.1, b2 = 2.2;std::cout...

