- 博客(40)
- 问答 (1)
- 收藏
- 关注
原创 C++ make_shared使用
C++内存分四大块全局 主函数运行前使用,初始化静态 变量第一次使用前,初始化以上两块内存都会在程序结束后自动释放堆区 由程序员管理,C++管理方法有new delete等关键字栈区 由编译器管理,存放程序的局部变量和参数因此我们需要关注堆区的内存管理。内存管理经常会碰到忘记释放造成的内存泄露。在C++中引入了智能指针,有shared_ptr,unique_ptr和weak_ptr。shared_ptr工作中shared_ptr用得比较多,今天做个总结使用智能指针,需
2022-01-16 17:02:24
31866
2
原创 docker中container的状态
上学期用了docker,管理镜像很方便,挺实用的。docker-compose 的一键部署也很好用,只需要写好相应的yaml文件,就能使用 docker-compose up一键启动。image即镜像,可以理解为是环境包。container 相当于是image的实例化,引擎上可以跑同一个image的多个实例。但是在管理container时,分不清kill 与rm的区别及联系,查阅相关资料,做个笔记,container有5中状态。执行 docker kill使用ps -a 查看,容器依然存在,只
2022-01-06 17:45:25
1150
原创 起进程加载动态链接库冲突解决方案
冲突描述情景,配置为用appdef启动相关进程,将一个进程拆成两个进程后,在做压力测试的时候有问题,同一个容器里面,加载同一个.so文件或者多个在很小的概率上会有冲突,因为进程启动先后不受控制。问题的解决在一个容器中启动多个进程,用同一个脚本启动,入参为启动的进程名,然后调用子脚本,逐一启动进程,先启动的进程设置为后台进程,使用&标识符即可在bash脚本中达到setdaemon的效果...
2019-07-11 21:57:12
878
原创 leetcode 6st ZigZag Conversion
1.题意输入:字符串,行数输出:N字形镜像旋转后的字符串2.思路第一反应:一列列排,中间每一列只有一个字符,找空格规律参考方案:找同一行字符串间的间隔规律,首尾字符间差值为(2n-2)中间行字符差值为X =(2n-2)-2i,(2n-2)-X, (2*n-2)-X…最后将字符串数组串起来组装成新的字符串3.反思思维还是太局限,应该关注输出是什么,着眼于输出于输入的关系,从其中找...
2019-01-09 22:16:39
137
原创 leetcode 5st Longest Palindromic Substring
1.题意 寻找输入字符串中的最长回文序列2.思路比较 (1)暴力破解,从头开始首尾两下标向中间移动,比较两端字符是否相同,长度控制一层循环,字符串起始位控制一层循环,比较两端字符是否相同一层循环,时间复杂度为O(n^3)代码不ac(2)以每个字符为中心向两边扩散比较,去除长度控制这层循环,与两端标记一同控制, 时间复杂度为O(n^2)参考代码如下:class Solution...
2018-09-12 23:23:08
146
原创 leecode 4st Median of Two Sorted Arrays
1.题意 输入为两个数字数组,找出其中的中位数 要求时间复杂度为log(m+n)2.思路 先把两个数组放入一个容器中,而后找中位数, 如果容器size为奇数,则是中位数本身,偶数,则是中间两数字的平均值使用堆或者快速排序还要重新造轮子,搜到一个很实用的stl方法 找数组或容器中的第n大的方法 std::nth_element(RandomIt first, RandomIt n...
2018-09-10 23:26:31
152
原创 C++多线程
上周在看C++ share_ptr时,有段关于讲多线程的代码很精巧,C++线程库起一个线程,只需要创建一个std::thread对象,有些ide没有相应的库,可以在linux平台下编译时加-pthread参数即可#include <iostream>#include <memory>#include <thread>#include <chron...
2018-07-14 18:57:34
261
原创 leectcode 3rd Longest Substring Without Repeating Characters
1.题意 找出无重复字母的最长子序列2.思路 用哈希表维护序列 left表示无重复子串的前一个位置 table的值表示当前字母出现的而最后一个序列位置,从1开始计数 条件很精妙3.反思 起初,自己的思路很简单,用循环比较,虽然编过了,但没有ac,处理了 1.空串 2.特殊字符(实则不能删) 等情况 但是timeout 要学会多用表等数据结构处理问题,穷举法很不理想 ...
2018-04-22 23:11:56
149
原创 leetcode 2nd problem add two numbers
1.读题 a.倒序的两个链表,均不为空。 b.数据格式除了0以外开头不能为0。2.思路 和数据结构选择的大作业类似,大整数加减,不过逆序无需构造循环链表。3.反思 解题步骤清楚,但是变量的放置位置很有讲究,本来想对个位数做统一处理,发现逻辑上就有问题,因为,涉及到: a.个位数加个位数,可能不进位的情况。 b.统一的流程只能是有一者或者两者指针移动的循环控制流,两者唯一确定的是...
2018-04-15 22:09:53
143
原创 leetcode 1st problem two sum
去年未上传的代码, 问题描述 一个vector容器中,假定只有一个解,使得和为0,找出这两个数class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { for(int i = 0;i<=nums.size()-2;i++) ...
2018-02-19 19:25:43
184
原创 默认参数与初始化列表补充
针对前天默认参数与初始化列表机制的一些深究 const类型和引用类型,在创建时,必须进行初始化。就是用参数列表初始化,移到构造函数体内部,则无法通过编译。也就是说,一旦进入构造函数体,初始化就已经完成了。那么其他内置类型或者自定义类型是不是这样的呢#includeusing namespace std;class CExample {public: int a; f
2018-01-20 14:22:40
812
原创 change Path script
trigger: 在服务器上跑代码,本地更改,安利gtk代码同步工具,但在服务器上对代码库进行 commit 或者diff,project大,寻找路径,索引繁琐,遂做个路径转换的小脚本consider到有转义字符的转换问题tool:剪切板访问工具 —-pyperclip, 常用函数recommend:pyperclip.copy()pyperclip.paste()源代码
2018-01-19 21:06:13
298
原创 默认参数与初始化列表
1.构造函数的默认参数在声明时指定,(而不能只在定义构造函数时指定默认值)使得创建对象时,可以顺序缺省参数,使用默认参数初始化,例:class Box{ Box(int m = 10, int n= 20);//声明} Box::Box(int m, int n) //实现{ int a = m; int b = n;}2.在一个类中定义了全部
2018-01-18 22:05:50
5341
翻译 聚合初始化补充
对昨天的花括号初始化做一个补充,术语应该叫做聚合初始化,补充一个Stackoverflow上的高票答案这里发生了什么叫做聚合初始化。以下是ISO规范第8.5.1节中的一个聚合的(缩写)定义: 聚合是一个没有用户声明构造函数的数组或类,没有私有或受保护的非静态数据成员,没有基类,也没有虚函数。 现在,使用{0}像这样初始化一个聚合,基本上是0整个事情的一个技巧。这是因为在使用聚合初始化时,您
2018-01-17 23:17:29
1281
转载 C++创建对象时加括号与不加括号的区别
看到一篇文章对创建对象时的集中情况,梳理得很清楚 c++创建对象的语法有—– 1 在栈上创建 MyClass a; 2 在堆上创建加括号 MyClass *a= new MyClass(); 3 不加括号 MyClass *a = new MyClass;也是在对上创建,并且有一个自定义类型指针指向myclass 4.—————MyClass a();声明了一个返回值为MyClass类型
2018-01-17 23:13:05
783
原创 C++11初始化与构造
研究vector容器使用方法时,初始化与构造需要区分初始化不是赋值,初始化的含义是创建变量时赋予其初始值,赋值,则是将对象当前值擦除,用新值替代拷贝初始化与直接初始化是一对概念,特征为使用等号是拷贝初始化(copy initialization),把等号右侧的值赋值到新建对象中去,(右侧是值,一般在花括号内,若为对象,会先调用)不使用等号,是直接初始化(direct initializat
2018-01-16 22:17:52
440
原创 ZJUT-OJjolly jumpers
之前一直有别的事,好久没更新。一懒下来,acm账号密码都忘了,干脆换oj。列了几点碰到的困难1.原来第一个不是数列中的数,而是总个数,这样就简单多了,只要根据其申请动态数组。2.困惑是否需要逆序排列,从n-1到1排列,后面看了他人处理并无有序要求。3.还有个小问题,就是辅助数组是否出现过利用difference要减1,因为数组下标是从0开始,最后发现因为自己下标应该是小于nu
2017-01-07 17:01:19
664
原创 ZJUT-OJ tight word
这次的题目略费劲,读了很久才明白,自己的英语水平也是捉襟见肘,改个bug该半天,看完别人代码,自己敲还是有很大的差距。 题目大意:用户依次输入,0~k,字符集合,而后输入计算的字符串每个字符是相邻字符的概率,一开始,是想,一个一个处理,第一个和最后一个字符只计算一个邻居节点的概率,其余的计算两个节点的概率,若是字符串长度不超过1以及集合为0~1概率为百分之百,但是这样处理其他的逻辑就比较可怕
2016-07-07 21:27:01
630
原创 ZJUT-OJ figure game
题目如下 给出一个数N,问N是否能表示成某个正整数X的K次幂(K>1),N可能有多种表示方法,请找出最大的X并输出相应的K 一点小问题:提交了三遍原来是编译器的问题,无pow(int&, int)的重载,故出现call of overloaded `pow(int&, int)’ ,只能最多指数是整型,解决方法,对底数(地鼠)使用强制转换成double#include #includ
2016-07-04 18:44:04
430
原创 ZJUT-OJ Password Intercept and capture
关键是回文序列的检测 1.看了看以前参照他人的写代码,发现并不能检测出前面是普通字符串,后面是较短的回文序列的情况。 2.纠正了对C++中的substr()的错误观念,substr(size_type _Off = 0,size_type _Count = npos)复制子字符串,第一个参数指定起始位置的下标,第二个参数表示子字符串的长度,不是终结字符的下标, 3.另外cstring只是为V
2016-07-04 17:06:41
431
空空如也
clementine的使用有疑问
2016-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人