C++
文章平均质量分 76
Descosmos
E-mail descosmos@163.com
展开
-
linux使用mingw交叉编译exe文件,windows无法运行
环境说明linux:Ubuntu 20.04.1 LTS (win10子系统)windows:win10编译器:x86_64-w64-mingw32-g++shell:windows powershell, cmd, linux shell文件:linux下文件地址 /home/descosmos/cpp/test.cpp通过linux访问windows桌面: cd /mnt/c/User/kingsoft/Desktop事件还原在linux中有如下文件:test.cpp#includ原创 2021-01-22 19:33:11 · 2609 阅读 · 0 评论 -
线程安全的Sigleton(单例模式)
单例模式关于单例模式的定义以及其最基本的实现不再多提,需要指出的是,对于一般的单例模式,仅凭 if(hold_ == NULL) 这类语句来进行判断显然很难达到线程安全的要求,因此本文通过pthread_once 来实现。注意,也可以通过线程同步机制,例如锁,信号量等形式来实现。template<typename T>class Signleton: boost noncopyable{public: static T& instance(){ pthead_once(&原创 2020-10-05 16:56:44 · 229 阅读 · 0 评论 -
C++封装pthread_mutex
MuteLock使用类来封装该功能时需要注意,该类不支持拷贝构造和赋值。class MutexLock: boost::noncopyable{public: // Initialize mutex_ MutexLock():holder_(0){ pthread_mutex_init(&mutex_, NULL); } // Destroy mutex_ ~MutexLock(){ assert(holder_ == 0); pthread_mutex_destro原创 2020-10-05 11:49:50 · 383 阅读 · 0 评论 -
刷题计划——双指针算法(二)
209.长度最小的子数组(中等)题目:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。 进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。同许多寻求子数组或者子串的题目一样,双指针法普遍都原创 2020-07-28 12:31:01 · 235 阅读 · 0 评论 -
刷题计划——位算法(一)
461. 汉明距离(简单)题目:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。有...原创 2020-05-07 23:16:03 · 436 阅读 · 0 评论 -
刷题计划——深度优先搜索(二)
面试题36. 二叉搜索树与双向链表(中等)题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示...原创 2020-05-06 08:57:49 · 259 阅读 · 0 评论 -
刷题计划——栈算法(三)
150. 逆波兰表达式求值(中等)题目:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分;给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((...原创 2020-05-03 18:08:39 · 222 阅读 · 0 评论 -
刷题计划——动态规划dynamic programming(四)
322. 零钱兑换(中等)题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount ...原创 2020-05-02 11:20:19 · 305 阅读 · 0 评论 -
刷题计划——回溯法(一)
47. 全排列(中等)题目:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]作为一道经典的回溯法题目,全排列的问题时回溯法入门的基础。首先,给定一个没有重复数字,总长为N的序列,其可能的排列组合为ANN−1...原创 2020-04-26 22:43:18 · 339 阅读 · 0 评论 -
刷题计划——深度优先搜索DFS(一)
面试题13. 机器人的运动范围(中等)题目:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因...原创 2020-04-25 22:38:45 · 263 阅读 · 0 评论