深入学习c++
深入学习c++
jerichoking
这个作者很懒,什么都没留下…
展开
-
c++多线程之原子操作
原子操作的不需要用到互斥量加锁技术,原子操作是在多线程中不会被打断的程序执行片段,比互斥量效率更高,但是原子操作只是针对一般只有一个变量,而不是一个代码段的情况,面对一个代码段还是得用互斥量加锁。原子操作一般指的是不可分割的操作,要么是完成状态,要么是没有完成状态,不会出现中间半完成状态。atomic是一个类模板,用来封装某个类型的值的,他有很多成员函数 1#include<io...原创 2019-04-24 23:40:39 · 619 阅读 · 0 评论 -
c++多线程编程之async、future
async、future创建后台任务并返回值,希望线程返回一个结果。async是函数模板,用来启动一个异步任务,启动起来一个异步任务之后,他返回一个future对象,future是个类模板。启动一个异步任务就是自动创建一个线程并开始执行对应的线程入口函数,他返回一个future对象,这个返回的对象里边含有线程入口函数所返回的结果,我们可以通过调用future对象的成员函数get()来获取结果。...原创 2019-04-24 21:00:30 · 960 阅读 · 0 评论 -
c++多线程之条件变量
1.条件变量condition_variable、wait()、notify_one()(通知一个线程)1.1condition_variable实际上是一个类,是一个和条件相关的一个类,等待一个条件达成,这个类需要和互斥量来配合工作,用的时候我们要生成这个类的对象。1.2.1wait()函数用于等待一个消息,他的第二个参数lambda表达式返回值是true,那wait()直接返回,否则w...原创 2019-04-22 21:41:37 · 2815 阅读 · 0 评论 -
c++单例设计模式及多线程
1、单例设计模式 1 #include<iostream> 2 using namespace std; ...原创 2019-04-22 14:00:13 · 1280 阅读 · 0 评论 -
c++服务器开发 多线程编程(基础)
1.为什么用多线程来做服务器?(1)当前的机器的单核红利已经结束(2)多线程拥有自身的优势(3)API日益成熟,操作系统和标准库都已经支持了多线程多线程编程需要掌握两个东西:数据计算和数据IO(内存和带宽)简单来说就是,快速处理数据和进行计算服务器开发的难点:在数据IO和计算找到平衡点多线程编程,multithread 类似于goto 用的不好可能会出现的问题:(1)死...原创 2019-04-14 23:18:51 · 1084 阅读 · 0 评论 -
深入学习C++(STL容器,map)
map multimap 引入的是二叉树数据结构namespace std{template<typename Key,typename T,typename Compare = less<Key>,typename Allocator=allocator<pair<const Key ,T>>class map;template<ty...原创 2019-04-14 16:44:39 · 172 阅读 · 0 评论 -
深入学习C++(STL容器,set)
set multiset 是c++98中引入的二叉树数据结构namespace std{template<typename T,typename Compare = less<T>,typename Allocator =allocator<T>>class set;template<typename T,typename Compare = ...原创 2019-04-14 00:22:52 · 165 阅读 · 0 评论 -
深入学习C++(STL容器,vector)
特点随机访问元素,末端添加删除元素效率高,前端和中间删除添加元素效率低,存在当前容器大小和容量的关系namespace std {template<typename T,typename Allocator = allocator<T>>calss vector;}Group = vector<float>;//初始Group a;Gr...原创 2019-04-11 10:43:40 · 182 阅读 · 0 评论 -
深入学习C++(STL容器,array)
array实际上是对原生数组进行了封装,内存分配在栈,不会重新分配,元素随机访问。#include <array> //库函数头文件array<int,100> a; //未初始化array<int ,100> b = {}; //全部初始化为0//array接口a.empty(); //访问一个bool值是否有元素...原创 2019-04-11 10:04:48 · 723 阅读 · 0 评论 -
深入学习C++(STL容器,概述)
STL是一个框架,将数据结构和算法进一步抽象化框架中主要三个部分:容器、迭代器、算法容器:管理某种东西的一个集合,可以是基本类型,也可以写的类型。迭代器:用来遍历元素,遍历的的东西可以是集合或者是容器的一部分,为各式各样的容器提供一组通用接口,对元素进行跳转规律和元素存储。算法:查找、排序、修改、使用某个东西,迭代器提供方法去遍历元素,怎么用这些元素就是通过算法是实现的。知道容...原创 2019-04-10 10:05:25 · 235 阅读 · 0 评论