tips
carbon06
这个作者很懒,什么都没留下…
展开
-
c++ stl set 有序性
stl 中的set 是有序容器,可以通过传入自定义比较器函数对象的方式,设定想要使用的比较方法。使用迭代器遍历set的时候,遍历的顺序就是set 中比较器定义的顺序。set<int> s;// 插入的时候按照从大到小的顺序插入for (int i = 10; i > 0; i--){ s.insert(i);}set<int>::iterator it;// 遍历的时候的输出是从原创 2017-11-05 18:06:05 · 14110 阅读 · 0 评论 -
g++ warn_unused_result
介绍在编程过程中,有的函数我们需要确保函数的返回值必须被使用。但是如果函数使用者直接调用函数且不使用函数的返回值的话,g++ 不会给出warning。这样可能会导致很难寻觅的bug。如调用realloc函数,函数调用者必须使用函数的返回值获得重新分配内存的指针。 利用g++ common function attributes 中提供的warn_unused_result 可以保证函数的返回...原创 2018-08-24 14:22:07 · 4841 阅读 · 1 评论 -
c++ 将git提交信息编译到可执行文件
在生产环境中经常需要查看在线上运行的程序对应git的哪次提交。 我们可以在编译时获取git 最后一次提交信息GIT_SHA1 宏,C++ 程序通过访问GIT_SHA1宏可以输出和git仓库的提交信息。 使用Makefile时,在Makefile 添加以下CPPFLAGS+=-DGIT_SHA1="$(shell git log --format='[sha1]:%h [author]:...原创 2018-07-12 11:45:04 · 1595 阅读 · 0 评论 -
批量替换tab为空格
利用find 找出需要替换的文件,然后使用sed命令执行替换。 如将src 路径下的所有cpp 文件的tab 替换为空格的命令如下sed -i -e "s/\t/ /g" `find src -name "*.cpp"`...原创 2018-06-13 18:08:51 · 5889 阅读 · 1 评论 -
Linux cmake 静态链接boost库
背景使用动态链接编译的二进制程序在执行时要求开发环境与生产环境严格一致,因此我们更倾向于使用静态链接的方式链接第三方库。本文介绍如何在Linux 环境下使用cmake 静态链接Boost 库。示例我们将编译好boost静态库.a 文件和头文件放入third_party 目录,在CMakeLists.txt 中使用find_package 方法查找boost静态库。 我自己在Cen...原创 2018-06-05 16:59:54 · 7179 阅读 · 0 评论 -
python pip 添加清华镜像
使用pip 安装python 库时连接国外库时,下载需要很长时间,在配置文件中设置国内镜像可以提高速度。 在linux 下创建 ~/.pip/pip.conf 文件。文件内容如下[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=mirrors.aliyun.com...原创 2018-05-21 14:54:49 · 5954 阅读 · 0 评论 -
GCC __builtin_expect 解析
概念摘自gcc的官方文档OtherBuildinFunction.— Built-in Function: long __builtin_expect (long exp, long c)You may use __builtin_expect to provide the compiler with branch prediction information. In general...原创 2018-05-10 15:43:39 · 1239 阅读 · 0 评论 -
c++ 将一个char 转化为string
const char c = 'a';//1.使用 string 的构造函数string s(1,c);//2.声明string 后将char push_backstring s1;s1.push_back(c);//3.使用stringstreamstringstream ss;ss << c;string str2 = ss.str();//注意 使用to_s...原创 2018-02-23 15:12:00 · 76843 阅读 · 4 评论 -
gcc __builtin_popcount 计算二进制表示中有多少1
gcc 中有一个叫做__builtin_popcount的内建函数,作用是就算一个数的二进制表示中有多少位是1。它使用一张基于表的方法来进行位搜索,因此这个操作的执行效率很高。其他计算bitcount 的方法int bitCount(int n){ int count = 0; while(n) { // 删除n 的二进制表示中最后一个1 ...原创 2018-02-11 18:16:46 · 1012 阅读 · 0 评论 -
linux shell 确保脚本只有一个运行实例
同时存在多个运行实例对数据进行修改时候会造成很多令人困惑的问题。我们可以在脚本执行开始前创建一个临时文件,如果此文件存在,就表示系统中存在一个运行实例,每个实例在退出之前把临时文件删除,保证新的实例可以执行原创 2017-12-26 12:10:32 · 3916 阅读 · 1 评论 -
Linux shell 从文件中随机选择内容
如果需要从文件中随机选择一定行的内容,可以借助sort 命令。如下# 使用sort 命令将文件随机排序,选择前100行sort --random-sort file | head -n 100原创 2017-11-20 19:21:22 · 7934 阅读 · 2 评论 -
linux 下配置jupyter web server
背景开发机操作系统为centos 6.5, 在需要使用python 绘图功能时,需要生成图片再把图片download 到本地机器查看,使用jupyter 配置linux server 可以直接在本地通过浏览器运行python 任务,绘图的结果也可以通过浏览器直接查看。本博客介绍如何在linux环境下配置jupyter web server配置首先生成jupyter 配置jupyter no...原创 2018-11-26 18:01:13 · 743 阅读 · 0 评论