- 博客(132)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注

原创 priority_queue存放pair,根据pair的first和second排序方法
比如,按照second来排序,first无所谓。second大的放在最前面:struct cmp{ template<typename T, typename U> bool operator()(T const& left, U const &right) { if (left.second < right.second) return tr
2017-11-24 12:00:38
8144
3

原创 ubuntu16.04通过odbc(用的C++)访问另一台centos上的达梦数据库
背景我的项目中需要C++访问达梦数据库,所以花了很大功夫来实现这个功能。 通过和达梦官方的邮件联系之后,得知现在达梦数据库(dm7)是不能在ubuntu版本的linux上安装server的,但是client还是可以安装在ubuntu上的。所以可以通过odbc来访问安装在centos上的达梦数据库。服务端达梦的安装在centos上安装的教程如下连接:http://blog.youkuaiyun.com/alle
2017-11-13 21:39:09
3894

原创 ubuntu16.04安装soci(一个可以封装访问oracle、mysql和postgresql等各种数据库的包)
安装一个东西首先要去看他的官网,这是它的官网http://soci.sourceforge.net/,但是似乎现在不翻墙连不上去(17-08-13),翻墙去看。1。安装依赖环境在下载安装之前,看它的requirements,需要安装哪些库,见下方: Below is an overall list of SOCI core: ● C++ compiler: GCC, Microsoft Vi
2017-08-13 21:19:27
2642

原创 python读取文件并绘制三维点图
描述:读取data.txt文件,里面每一行都是由空格分隔的x,y,z坐标。本文目标是读取之后将它绘制出来。要点:读取文件要用生成器,这样大文件就不用都一次性放进内存。python代码:#-*-coding:utf-8-*-import numpy as npimport reimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d i
2017-05-04 11:17:53
11917
2

原创 机器学习实战 第九章 的树回归这里代码有问题
我的文章来自@fghdvbgt的一篇博客:http://m.blog.youkuaiyun.com/article/details?id=51277716发现里面确实有着两个问题:(1):def binSplitDataSet(dataSet, feature, value): mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:][0
2016-11-19 00:58:09
1068
原创 C++如何实现自定义的struct作为unordered_set、unordered_map的key?
【代码】C++如何实现自定义的struct作为unordered_set、unordered_map的key?
2023-11-26 17:59:09
749
原创 学习搜狗的workflow,MacBook上如何编译
说可以在MacBook上也可以运行,但是编译的时候却有找不到openssl的错误:看也有类似的错误,按照类似的思路去解决。
2023-10-06 17:29:52
281
原创 C++ std vector多线程push_back一定会core吗?
答:动态扩容(扩充capacity)的时候经常会core,如果capacity足够,不扩容,则不会core,但是多线程push_back也不会有预期内的结果,vector内的数据可能塞不进去。多线程写vector是未定义的行为。结果每次执行的size都不一样。
2023-08-23 00:20:26
438
原创 blade-build如何创建和使用动态库(.so)
需要手动将.h放到include目录中,可以通过shell自动化完成。需要将生成的so放到新创建的lib64_release目录里。
2022-11-13 21:57:39
945
原创 使用std的sort有两种设置比较函数方式
class A{public: A(int a) : a_(a){ } bool operator<(const A& a) { return a_ < a.a_; } int a_=0;};bool func(const A& l, const A& r) { return l.a_ > r.a_;}void print(vector<A>& vec) { for (auto& i :
2022-03-21 00:56:46
483
原创 批量在多台机器上执行命令
背景有些场景需要批量登录到服务器上执行一些命令,提高效率方法有ips文件存放ip列表,和run.sh文件:PWD=1233333function login(){ sshpass -p$PWD ssh -o StrictHostKeyChecking=no root@$1 "ls"}for line in `cat ips`do login $1done...
2022-01-09 00:41:47
535
原创 C++11及以后版本的基础概念(更新中)
using参考官网,不仅可以作为之前已经定义好的类型的别名,类似typedef,还可以作为模板的别名,作为一族类型的别名
2021-08-07 17:18:24
199
原创 C++模板的学习(更新中)
C++模板的学习(更新中)理由模板泛型编程是C++的一个高级特性,抽象性强,用得好可以简化代码,将重复代码归一化,添加新功能时不用开发代码,但是模板又是C++比较难掌握的一个特性,尤其在工作中可以用的得心应手更难,因此需要学习模板,把忘记的知识捡起来基础模板编程与面向的对象编程在运行时确定对象类型不同,它在编译时就能确定类(对象)类型一般函数在调用时不必知道函数定义,只需函数声明就行,因此我们一般将不同的类定义和函数声明放在头文件中,定义放在源文件中,但是模板不同,它需要知道函数模板或者类模板成员
2021-05-31 00:41:40
111
翻译 gdbinit
# # STL GDB evaluators/views/utilities - 1.03## The new GDB commands: # are entirely
2021-02-25 00:38:14
158
原创 查看一个工程的代码行数
说明例子为C、C++代码,其他语言类似背景工程的复杂程度是与代码行数是呈正相关的,快速知道代码行数是了解工程的最直观的方法。命令find . -name "*.c*" -or -name "*.h*" | xargs cat | wc -l...
2019-11-10 11:06:53
1057
原创 Filezilla server中,关于FTP被动模式的配置
背景由于想要在两台电脑间传输数据,想到了FTP协议,使用开源的FileZilla软件,首先应该分别在两台电脑上安装server软件和client软件,但是在client端连接server端的时候,出现了一些问题:首先是配置了服务器ip、用户名、密码、21端口之后仍然连接不上,但是在server端的client却能连接的上,这种现象的原因是server端的防火墙导致的,需要在服务端添加入站规...
2019-03-30 20:30:51
2711
原创 为什么Windows10总卡死
为什么Windows10总卡死问题:最近用ThinkPad的Windows10,经常卡死,鼠标也不能动,按键也不管用,但是拔了电源屏幕闪一下就恢复了,或者睡眠一下也恢复了,但是不多久又开始卡死了。解决办法:原发是我一直打开了任务管理器,看来是任务管理器一直在监控各个资源信息,不能长时间监控。...
2019-03-19 21:38:02
2355
1
原创 我对于异步同步的理解
现在很多技术都有异步同步的区别,大概内容就是同步:同步调用的话就是client调用一个函数后会阻塞,知道会等待server端返回结果后再返回。异步的话使用了保存上下文技术、使用队列技术和回调函数技术:client调用函数后保存上下文后就很快将请求放进队列中,直接返回程序。通过对队列中的item的不断消费,server端返回请求的结果,再通过队列返回,根据上下文信息和回调函数技术,client...
2019-02-28 12:34:43
237
原创 微信的dns系统
背景之前登录网关的时候,浏览器有时候不是给我下载个东西,就是显示一些不知名的东西。后来我发现有时经常给我一个微信服务器返回的dns系统的xml文件,我就闲了分析了一下它,网上一搜,竟然还有人也分析过它,在这里。数字签名:首先,这个xml文件里的数字签名有三个,关于数字签名,可以参考阮一峰博客,可以把它理解为人的签名,其他人是模仿不了的就行了。timestamp。发现微信的dns服务器ip可...
2019-01-11 00:47:35
9116
原创 leetcode 949. Largest Time for Given Digits
全排列思想回溯法进行全排列,排完结果就出来了:class Solution {public: void is_valid(vector<int>& A, set<pair<int,int>> & valid) { int first = A[0] * 10 + A[1]; int second =...
2018-12-02 12:13:43
355
原创 在ubuntu16.04上配置soci来连接Oracle、MySQL、PostgreSQL和odbc(连接达梦)
在ubuntu16.04上配置soci来连接Oracle、MySQL、PostgreSQL和odbc(连接达梦)原理参考安装前提其中安装Oracle的时候比较麻烦:步骤:原理soci是github上基于C++的连接多种数据库的开源项目,lisence是和boost一样。用它来使用C++连接数据库会比较方便。参考官网 有比较详细的安装介绍,但是我还是以我的实际经历来记录一下安装过程。安装前...
2018-11-20 22:41:55
1590
原创 关于C++string在文件中显示的问题
文件的类型文件其实有两种类型:文本类型文件(存储字符,可以有各种编码)和二进制类型文件(非仅储存字符)。举个例子,一般文本文件中的每个字节存储的是’a’,‘1’,‘W’’'等这些可见字符,以及如果使用utf8编码的话,会有utf8格式编码的字符,比如“中国”等,但是这些编码是有规律可循的,每个字节不是可以存储-128~127所有类型的,具体参考维基。而二进制文件就不同了,你通过vim打开一个可...
2018-11-19 00:22:58
591
原创 发现有道云笔记用的搜索也是clucene引擎
clucence引擎官网优点:clucene引擎是lucene引擎的C++版本,没有了gc,显然较快,有道云笔记的搜索也用的是这个,证据在此:
2018-11-15 11:28:58
636
原创 发现ifstat监控的io和腾讯管家监控的io不同
对于同一个场景,我分别用了腾讯管家和ifstat监控一个主机,发现了网络IO的不同:ifstat监控的结果如下:[aaaa@bbb hbase-1.2.6]$ ifstateth1KB/s in KB/s out167.05 72.56161.29 69.61155.87 67.75157.16 68.27但是腾讯管家监控的结果如下:in:...
2018-11-05 17:08:47
151
原创 怎么样才能导致栈溢出?怎么样会导致堆的std::bad_alloc异常被抛出?
怎么样才能导致栈溢出?怎么样会导致堆的std::bad_alloc异常被抛出?具体的栈溢出上限,堆异常上限见如下注释和代码:char tmp[10000000];//会导致栈溢出,10^7 Byte = 10G,太大了,导致栈溢出char tmp[1000000]; //不会导致栈溢出,10^6 Byte=1G,栈还可以接受//对于刚才栈溢出的字符串,如何才能在满足要求的情况下保证栈...
2018-11-05 11:09:02
1053
原创 安装HBase时HMaser出现一会儿就消失的问题解决
时隔几个月重新伪分布式安装HBase,真是糟糕,安装了一整天都不成功,不过最后终于找到了原因,最后也学到了很多东西遇到的问题:Hadoop可以正常启动,但是HBase的HMaster启动后就会隔几秒退出,显示出一下log信息,就是连接不到HDFS上:2018-11-02 10:02:38,404 FATAL [cindb:16000.activeMasterManager] master....
2018-11-02 10:58:05
1760
原创 Mac安装指定版本的boost
过程一开始想在Mac上安装指定版本的boost,但是网上很多教程说得官网上下载安装,于是就卸载了原来的新的1.67的boost版本并安装了旧的1.60版本,妈的,安装包安装失败了,报了一系列错误。后来发现,输入brew install boost的时候,再按tab键会出来可供选择的安装版本,最后通过brew install boost@1.60命令完成了安装,brew真是好用。...
2018-07-04 23:52:02
2868
原创 Macbook-macOS下,利用vmware创建centos6.5虚拟机,在桥接方式下配置静态ip遇到的问题和解决方法
遇到的问题:无法分配自己想要的ip:虚拟机在DHCP动态分配ip(比如分配到的ip是10.108.208.177)的情景下是可以ping通该子网(就是通过网线连接到路由器的主机)内的主机的,也可以ping通该路由器外的ip,比如通过2跳路由器的另外一台主机;但是,如果换成静态ip,如果配置的ip不是10.108.208.177而是局域网中另外一台没有分配到的ip比如10.108.208.17...
2018-04-27 21:46:24
853
原创 leetcode-135. Candy
考察点贪心思路从左往右扫描一遍,贪心一次;然后从右往左扫描一遍,当当前位ratings小于左边一位ratings并且当前为nums大于左边一位nums时,要将左边一位赋值为当前位nums+1.C++代码class Solution {public: int candy(vector<int>& ratings) { int size = ratings.size();
2017-11-06 16:02:19
229
原创 python访问、操作hbase
我的环境是ubuntu16.04,hadoop版本2.6.5,hbase版本1.2.6。 参考了这个安装:http://blog.youkuaiyun.com/u010066807/article/details/51440481 问题出现在这里:cd hbase-1.2.1/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thriftthrhttp://wr
2017-10-19 21:47:49
722
原创 leetcode- Add to List 669. Trim a Binary Search Tree
考察点:二叉树, 递归; 思路:如果root的val比L还要小,就应该trim掉root左边的枝,所以返回对root右边的递归;如果root的val比R还要大,返回对root左边的递归;如果root的val在[L, R]中间, 就分别对root的left和right赋值。这个思想很巧妙,不好想。 C++代码:/** * Definition for a binary tree node. *
2017-10-13 15:14:18
278
原创 leetcode-606. Construct String from Binary Tree
考察点:递归,二叉树; 思路:注意初始情况就行。 C++代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL
2017-10-12 10:29:38
175
原创 leetcode-402. Remove K Digits
考察点:栈,贪心; 思路:贪心的思路就是从左往右遍历,第一个遇到的char要放入栈中,后面的char如果小于栈顶元素,应该出栈,更换栈顶元素。C++ 代码:class Solution {public: string removeKdigits(string num, int k) { if (k == num.size() || num.size() == 0) ret
2017-10-07 16:31:44
221
原创 leetcode-394. Decode String
考察点:栈的使用,解析字符串 思路:使用两个栈:一个数字栈,一个string栈;数字栈栈顶表示string栈栈顶string的重复次数。从头到尾遍历string,遇到数字要提取数字,并压入数字栈,遇到 ‘[’要压入string栈空的string,遇到字母要将string栈栈顶的string拼接这个字母然后压栈,遇到‘]’要将string栈和num栈出栈重新拼接新的string入栈。最后在循环外要将
2017-10-06 13:11:17
227
原创 Add to List 316. Remove Duplicate Letters
考察点:递归,C++字符串操作,贪心; 思路:每一次递归,首先用贪心法找到left_most位置的字符,就是找到字母数尽可能最小的位置(‘a’的话最好),遇到只有一个字母的位置时停下扫描,break;然后将s的left_most位置之前的字符删掉,后面重复的字符也删掉,最后返回空字符或者left_most位置的字符加下一个递归的结果。C++代码:class Solution {public:
2017-10-01 16:41:46
176
原创 504 base 7
C++ 代码: 取余数运算;class Solution {public: string convertToBase7(int num) { if (num == 0) { return "0"; } stack<int> sta; int flag = 1; if (num < 0)
2017-10-01 10:21:19
193
vs2012连接SQL SERVER的问题
2014-04-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人