3 yz930618

京东商城 算法工程师

Don't live the same day twice

等级
博文 122
排名 2w+

g++ 常用链接参数

Linux上开发C++时,常需要添加第三方依赖,有以下几种常用的参数:1.-l(小写L)当库文件在/lib、/usr/lib、/usr/local/lib三个目录下时,可直接用-l链接。-l参数后紧跟库名,库名和库文件名的关系如下:以数学库为例,它的库名为m,库文件名为libm.so,把库文件名的头lib和尾.so去掉即为库名。2.-L当库文件在自定义目录下...

2019-07-07 15:08:41

Linux三剑客之sed实战

基本介绍sed是Linux中一种流编辑器,是文本处理非常有力的工具,支持将数据进行替换、删除、新增、选取等功能。首先将决定选取哪些行进行编辑,规则可以是数字、正则表达式等,若没有限制,则将处理输入文件的所有行。在处理时,将当前行存储在临时缓存区中,称为”模式空间“,然后使用sed指令处理缓冲区的内容,处理成功后,把缓冲区的内容输出到屏幕上。语法格式sed[-nefri]动作命...

2019-05-26 00:50:28

STL 源码剖析之Vector

1.Vector概念作为STL中常用的序列式容器,vector的数据安排与操作方式,与array都十分相似,它们唯一的差别是对于空间运用的灵活性。array称为静态数组,一旦初始化则不能改变大小,而vector称为动态数组,随着元素的不断加入,它的内部机制会自行扩充空间。因此,vector的实现技术,关键在于其对空间大小的控制以及重新配置时的数据移动效率。2.Vector定义为...

2019-05-21 14:37:57

anaconda 安装package提示PackagesNotFoundError

Linux下使用anaconda安装package时,有时候会提示“PackagesNotFoundError:Thefollowingpackagesarenotavailablefromcurrentchannels”。解决方案如下:第一步:输入anacondasearch-tcondapackages第二步:输入anacondashow&lt...

2019-04-26 18:23:37

Linux 三剑客之grep实战

基本介绍grep是Linux中一种强大的文本搜索工具,用于查找文件里符合条件的字符串。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是所有用户。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。语法格式grep[-abcEFGhHilLnqrsvVwxy][-A<显示列...

2019-04-22 18:27:04

C/C++程序占用内存说明

一、组成部分1.栈区(stack):由编译器自动分配释放,存放函数参数值,局部变量的值等,操作类似于数据结构中的栈。栈内存分配内置于处理器的指令集,分配效率高但是内存容量有限,不会产生内存碎片,向着内存地址减小的方向生长;2.堆区(heap):由程序员自动分配释放,若程序员不释放,容易导致内存泄漏,程序结束时可能由OS回收。堆内存分配类似于链表,分配效率低但是内存容量大,频繁的分...

2019-04-15 21:03:49

Linux 三剑客之awk实战

基本介绍awk是Linux开发下常用的一种对文本进行处理的工具,具有十分强大的功能。数据可以来源于标准输入、文件及外部变量,支持用户自定义函数和动态正则表达式等高级功能,且拥有许多内置的功能和函数,是开发中的一件利器。通常,awk是以文件的一行为处理单位的,每接收文件的一行,然后执行相应的命令处理文本。语法格式awk[选项参数]'script'var=valuefile(...

2019-04-12 13:10:44

剑指Offer题目汇总(C++版)

最近,鉴于目前网上关于《剑指Offer》C++版的汇总资料特别少或者不规范,特整理了一版书中重要的考题,以备学习使用。目录一、位运算1.二进制中1的个数2.二进制中0的个数3.二进制高位连续0的个数二、二叉树1.二叉搜索树第k个结点2.从上往下打印二叉树3.二叉树打印成多行4.数据流中位数5.二叉树中和为某一值的路径6.重建二叉树...

2019-04-11 18:17:02

C++ 数据结构实战:快速查找

最近线上开发C++时,遇到一个性能问题,业务场景简单描述为:给定m个商品ID,4个特征(特征数量可增可减),已知商品对应的每个特征的值,如何快速获取某个商品的某个特征值?当时我采取的是stl嵌套的数据结构,由于时间复杂度较高,且vector的值是随着map的rehash阶段不断进行内存拷贝的,在全量计算特征的时候会给性能造成很大的压力,当时与base的性能对比如下:性能不...

2019-03-27 17:36:03

C++多线程管理实操

多线程开发在实际工作中十分重要,在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。因此,本文旨在讲解多线程的基本概念,以及利用C++编写一种生产者-消费者模型的多线程实例。基本概念通常,并发编程有两种模式,分别是多进程并发和多线程并发。多进程并发指的是开辟多个独立且只包含一个线程的进程,进程间互相通信,共同完成一个任务。但是,由于操作系统对进程提供了大量的保护机制,不同进程之间...

2019-03-24 16:13:56

anaconda配置虚拟环境

工作中,由于权限不足等原因,安装python各种依赖包时十分麻烦,因此,下面讲述如何利用anaconda配置虚拟环境。anaconda配置虚拟环境1.下载anacondaanaconda官网:https://www.anaconda.com/清华镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/2.安装an...

2019-03-06 11:49:57

动态规划之深入浅出

1.简介动态规划(DynamicProgramming,DP)算法目的为解决多阶段决策最优化问题,采取的方法是将待求解的问题分解为多个子问题,按顺序求解每一个子问题,当前子问题的解将由前一个子问题的解推导出,最后一个子问题就是初始问题的解。由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中,以便下一次求解同...

2019-01-31 10:45:41

Linux 编译cpp为动态库so文件

g++hash.cpp-fPIC-shared-ohash.so

2019-01-07 10:54:50

工作常用Git命令实战

1.简化日志   gitlog–pretty=oneline    2.版本回退  回退至上一个版本:gitreset --hardHEAD^  回退至上上版本:  gitreset --hardHEAD^^  回退至前n个版本:  gitreset --hardHEAD~n   3.获取版本号  gi...

2018-12-29 18:26:20

CTR预估之Deep Interest NetWork模型原理详解

本文介绍的DeepInterestNetWork是阿里妈妈盖坤带领的团队2018年8月发表在KDD的Paper,在点击率预估等场景有不错的效果。由于最近团队也准备尝试下该模型,因此提前熟悉下DIN的原理与实现。引言点击率预估在搜索、推荐、广告等领域具有很广泛及成功的应用,众多学者和公司也纷纷发表了相关Paper。随着深度学习在计算机视觉,自然语言处理等领域的重大突破,有许多研究将D...

2018-12-14 18:49:21

快速求解exp方法

开发线上项目时,效率往往是一个十分重要的指标。程序在计算指数exp时,一般是通过泰勒展开近似的,为了保证精度,所展开的泰勒项特别多。因此,exp的求解是十分耗时的。下面,提供一种快速求解exp的方法。doublefast_exp(doublex){doubled;//先将尾数的后32位抹零。*(reinterpret_cast<int*>(&d)...

2018-12-13 20:53:54

广告CTR预估相关模型汇总

一、FM、FFM FM:FactorizationMachines FFM:Field-awareFactorizationMachinesforCTRPrediction二、DeepFM DeepFM:DeepFM:AFactorization-MachinebasedNeuralNetworkforCTRPrediction三、Wide&...

2018-12-08 23:45:13

《基于行列式点过程的推荐多样性提升算法》原理详解

本文将详细讲解Hulu在NIPS2018会议上发表的《FastGreedyMAPInferenceforDeterminantalPointProcesstoImproveRecommendationDiversity》中,提出的基于行列式点过程的推荐多样性提升算法。引言随着机器学习技术日益成熟,机器学习的应用领域也越来越广。其中,推荐领域是机器学习一个比较常...

2018-12-06 20:15:18

C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别

工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。int_t同类int_t为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是一种新的数据类型。因为跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以最有效的维护代码。...

2018-12-04 12:05:06

C++ STL系列之boost:unordered_map和std::map区别详解

开发C++时,选择合适的数据结构是一个十分重要的步骤。因此,必须对每一个数据结构的原理及应用场景都有所了解。boost::unordered_map和std::map都是一种关联式容器,且原理类似,通过存储key-value键值对,可通过key快速检索到value,并且key是不重复的。但是,它们之间有一些区别,下面将逐一介绍。排序区别:map是有序的:按照operator<比较...

2018-12-04 11:00:15
奖章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。