
C++
勤学-365
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++11多线程编程
一、头文件介绍1、C++11新标准引入了五个头文件支持多线程编程,分别如下:\<thread>该头文件该头文件主要声明了std::thread类,其中std::this_thread(提供了一些辅助函数)命名空间也在该头文件中<atomic>该头文件主要声明了std::atomic和std::atomic_flag两个类,另外还声明了一套C风格的原子类型,和与C兼...原创 2020-01-27 09:36:15 · 112 阅读 · 0 评论 -
时间复杂度和空间复杂度
文章目录1.首先,时间复杂度与空间复杂度是对立的,时间复杂度越低,空间复杂度就越高。我们在程序中通常采用以空间换时间的方式来提高项目运行效率。先给大家说一个最常见的简单的,时间复杂度是以n为变量,程序的运行次数随n的变化而变化。for(int i=0;i<n;i++){}当只有一层for循环的时候时间复杂度就是O(n)如果两层for循环如下所示:for(int i=0;i<...原创 2020-01-27 09:32:27 · 679 阅读 · 0 评论 -
动态规划
文章目录基本逻辑爬楼梯打家劫舍最大字段和找零钱三角形最长上升子序列最小路径和基本逻辑1、确认原问题 子问题2、确认状态3、确认边界状态值4、确定状态转移方程爬楼梯#include <iostream>#include <map>#include <string>#include <vector>#include <al...原创 2020-01-27 09:36:53 · 338 阅读 · 0 评论 -
搜索算法
文章目录小岛数量小岛数量#include <iostream>#include <map>#include <string>#include <vector>#include <queue>using namespace std;class solution{public: int DFS(vector &...原创 2020-01-27 09:37:22 · 216 阅读 · 0 评论 -
哈希表与字符串
文章目录哈希表排序整数哈希表排序整数#include <iostream>#include <vector>#include <queue>#include <string>using namespace std;int main(){ int rand_num[]={999,1,4,6,88,4,1,22,5}; ...原创 2020-01-27 09:37:34 · 295 阅读 · 0 评论 -
二分查找与二叉树查找
文章目录二分查找(递归)二分查找(循环)插入位置区间查找二分查找(递归)#include <iostream>#include <vector>#include <queue>using namespace std;int binary_sort(vector<int> sort_vec,int begin,int end,int g...原创 2020-01-27 09:37:43 · 669 阅读 · 0 评论 -
C++二叉树与图
文章目录递归调用思路二叉树:前序、中序、后序 遍历思路预备知识:二叉树的构造(调用顺序)路径之和寻找最近公共祖先二叉树转链表(借用vector)二叉树转链表(就地转化)二叉树宽度优先搜索侧面观察二叉树图的构造图的深度优先遍历图的广度优先遍历课程安排(深度优先)课程安排(广度优先)递归调用思路两个递归函数先后执行、前一个先全部递归完毕,然后从前一个递归的最后一个元素,进行下一个递归,直到遇到退出...原创 2020-01-27 09:38:18 · 682 阅读 · 0 评论 -
C++算法---递归、回溯、分治
文章目录求子集(回溯法)求子集(回溯法)#include <vector>#include <iostream>using namespace std;void generate(int i,vector<int> &nums,vector<int> &item,vector<vector<int> &...原创 2020-01-27 09:38:18 · 390 阅读 · 0 评论 -
C++多线程库mutex
mutex又称互斥量,用于提供对共享变量的互斥访问。C++11中mutex相关的类都在头文件中。共四种互斥类:与std::thread一样,mutex相关类不支持拷贝构造、不支持赋值。同时mutex类也不支持move语义(move构造、move赋值)。不用担心会误用这些操作,真要这么做了的话,编译器会阻止你的。一、lock, try_lock, unlockmutex的标准操作,四个mut...原创 2020-01-27 09:36:38 · 536 阅读 · 0 评论 -
C++多线程异步通讯机制总结
#include <iostream>#include <future>#include <thread>using namespace std;using namespace std::this_thread;using namespace std::chrono; //费时操作void work1(promise<i...原创 2020-01-27 09:38:31 · 2273 阅读 · 1 评论 -
C++多线程编程packaged_task类
文章目录1、头文件2、原理简介3、get_future函数4、举例1、头文件#include <future>2、原理简介std::packaged_task它包装了一个可调用的目标(如function,lambda expression,bind expression,or another function object),以便异步调用,它和promise在某种程度上有点像,...原创 2020-01-27 09:38:38 · 381 阅读 · 0 评论 -
C++多线程编程promise
文章目录1、头文件2、std::promise类介绍3、get_future函数4、set_value函数5、set_exception函数6、举例1、头文件#include <future>2、std::promise类介绍std::promise用来包装一个值将数据和future绑定起来,为获取线程函数中的某个值提供便利,取值是间接通过promise内部提供的future来...原创 2020-01-27 09:38:38 · 902 阅读 · 0 评论 -
C++多线编程 future类
文章目录1、头文件2、为什么需要future3、std::future类介绍4、get成员函数5、wait成员函数6、std::async函数7、std::async比std::thread的优势举例1、头文件#include <future>2、为什么需要future如果希望一个线程做一些费时任务时,任务完成后获取线程中产生的结果。在C++11中不能直接从thread.joi...原创 2019-08-04 11:44:00 · 1940 阅读 · 0 评论 -
C++多线程 condition_variabe条件变量
文章目录1、头文件2、作用3、条件变量的5个函数4、原理5、类似类说明6、举例1、头文件#include <condition_variable>2、作用用于线程间的同步3、条件变量的5个函数wait 阻塞自己,等待唤醒wait_for 阻塞自己,等待被唤醒,等待一段时间wait_until 阻塞自己,等待唤醒,等待到某个时间点notify_one 唤醒一个等待在这...原创 2020-01-27 09:39:05 · 410 阅读 · 0 评论 -
C++多线程原子类atomic
多个线程操作同一个变量时,需要使用原子操作#include <iostream> #include<atomic>//原子操作头文件#include<thread>using namespace std; atomic<int > N(0);//用atomic保证对N的操作的原子性void ThreadFun(){ fo...原创 2020-01-27 09:39:14 · 278 阅读 · 0 评论 -
C++多线程库thread
文章目录前言编译命令thread类简单创建一个线程给线程传参数类成员函数作为线程入口线程暂停参考:前言目前来公司工作两年了,发现很多时候因为自己的能力广度不足最后直接影响到产品质量。就比如自己来的第一年编写资源池管理模块代码,因为自己相关知识不够充分,编写流水线式的代码,让整个资源池创建过程十分缓慢。这绝对不是一个优秀的开发人员能够接受的。目前C++、C的 多线程编程和网络编程还处于空白状态,...原创 2020-01-27 09:39:37 · 860 阅读 · 0 评论 -
c++ override
1、公有继承公有继承包含两部分,一是函数接口,二是函数实现1.1 纯虚函数纯虚函数,继承的是基类中成员函数的接口且要在派生类中重写成员函数的实现要调用基类的成员函数,须加类作用域操作符::1.2 普通虚函数虚函数会在基类中,定义一个缺省的实现,表示继承的是基类成员函数接口和缺省实现,由派生类选择是否重写该函数。实际上,允许虚函数同时继承接口和缺省实现是危险的。最好是基类实现缺省行为,...转载 2019-07-05 14:41:02 · 257 阅读 · 0 评论 -
C++ pair和make pair
std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pair<int,float> 或者 std::pair<double,double>等。pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。初始化一个pair可以使用构造函数,也可以使用std::make_pair函数,...转载 2019-07-05 14:32:06 · 190 阅读 · 0 评论