
c++
文章平均质量分 57
TaoTao Li
擅长C/C++、Python、Golang编程
熟悉推理服务、搜索引擎、算法平台化开发
展开
-
深度学习笔记:特征抽取
简单来说,深度模型的输入只能数字类型,现实中的数据则不尽相同,如性别,年龄,商品价格等。例如可以将性别作为特征,男性设置为0,女性设置为1;也可以将年龄和性别组合后作为一个特征,大于18岁的男为3,小于18岁的女为4。数字代表模型输入的特征值。因此,特征抽取就是将这些具体的原始数据通过规则转化为模型可识别的数字(或数组)的过程。本文重点介绍特征分类、特征抽取的过程、特征抽取实现方法、在线特征服务架构。......原创 2022-07-30 23:46:46 · 1803 阅读 · 0 评论 -
grpc编译问题:“C++ versions less than C++11 are not supported.
# 官方教程https://grpc.io/docs/languages/cpp/quickstart/# mac编译问题"C++ versions less than C++11 are not supported."```# 编译abseil时需要添加-DCMAKE_CXX_STANDARD=11,否则会编译报错$ mkdir -p third_party/abseil-cpp/cmake/build$ pushd third_party/abseil-cpp/cmake/bu.原创 2021-07-03 16:35:19 · 3610 阅读 · 4 评论 -
深入浅出RPC原理
转自:https://ketao1989.github.io/2016/12/10/rpc-theory-in-action/ 深入浅出RPC原理远程过程调用(Remote Procedure Call,简称RPC),在微服务大行其道的今天,得到了广泛的应用。因此,在分布式系统服务群中开发应用,了解RPC一些原理和实现架构,还是很有必要的。本文,将从大的框架层面来聊聊RPC原理和实现...转载 2018-11-17 15:45:11 · 1807 阅读 · 1 评论 -
GDB查看STL容器数据
转载自:http://blog.chinaunix.net/uid-20594049-id-1620139.html1. 下载 http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt2. #cat dbinit_stl_views-1.03.txt >> ~/.gdbinit3. 若正处于gdb中,运行命...转载 2018-11-18 11:07:27 · 1083 阅读 · 0 评论 -
tensorflow serving踩坑记录
参考:https://blog.youkuaiyun.com/luoyexuge/article/details/79821668clone代码git clone --recurse-submodules https://github.com/tensorflow/servingcd serving创建tensorflow_servingbazel build tensorflow_serving/...转载 2018-12-23 22:15:45 · 1653 阅读 · 0 评论 -
tensorboard使用
import tensorflow as tfsess = tf.InteractiveSession()a = tf.Variable(0, name="a")b = tf.Variable(1, name="b")c = tf.add(a,b)sess.run(tf.global_variables_initializer())summary_writer = tf.s...原创 2018-12-01 12:06:06 · 252 阅读 · 0 评论 -
如何在运行时加载C++函数和类
转载自:https://blog.youkuaiyun.com/wzhg0508/article/details/46282973Problem有些时候你想在运行时加载一个lib或者function or class,这种事情经常发生在你开发一个plugin或者module时遇到。在C语言里,你可以轻松的利用dlopen, dlsym, dlclose来做到,但是在C++的世界里却没那么简单了。困难...转载 2018-12-13 22:57:00 · 1651 阅读 · 0 评论 -
C++虚表结构详解
原文地址:https://www.learncpp.com/cpp-tutorial/125-the-virtual-table/为了实现虚函数,C++使用动态绑定方式,称为虚表。虚表是一个包含函数的查找表,该查找表用于动态绑定方式解决函数调用问题,虚表有时候被称为“vtable”,"虚函数表",“虚方法表”,“分派表”。虚表虽然用语言描述有点复杂,实际上非常简单。首先,每个包含虚...翻译 2018-12-14 00:06:03 · 3012 阅读 · 0 评论 -
C++的new/delete操作符
new的基本和高级用法1、new 的基本用法int *a = new int[5];class A {...} //声明一个类 AA *obj = new A(); //使用 new 创建对象delete []a;delete obj;这里我们注意,new int[5] 仅仅分配了空间, 但是 new A(),不仅仅为对象obj在队上分配了空间, 而且还调用了 A的构...转载 2018-12-06 21:35:44 · 300 阅读 · 0 评论 -
C++ assert用法详解
转自:http://www.cnblogs.com/Mr-Wenyan/p/7213809.html头文件<assert.h>头文件<assert.h>的目的就是提供宏assert的定义。在程序中可以用这个宏来断言,如果断言是真,则继续执行。如果断言为假,则在标准输入流中输出一条提示信息,并执行终止异常。通过宏DEBUG控制断言是否有效:如果程序中包含<a...转载 2018-12-11 19:41:00 · 1860 阅读 · 0 评论 -
git lg 使用
转载自:https://luolei.org//better-git-log/#commentsGit是一个强大的版本管理器,建议每一个开发者或者开发团队都可以使用git。想当初,自己code的时候还是用evernote来保存一些代码片段,以免写烂,自从用上git后,妈妈再也不用担心code shit了。git log 命令是查看全部提交日志git log -2 查看最近2次的...转载 2018-12-11 23:28:54 · 2446 阅读 · 0 评论 -
私有静态成员理解(C++)
先上代码,运行分析结合注释说明,自然会明白,后面给出总结#include <iostream>class A { public: A() {} ~A() {} public: //公有静态成员函数 static void setA1(int val) { A...原创 2019-08-05 23:46:20 · 11519 阅读 · 2 评论 -
template用法
#include <iostream>template <typename T, typename H>class A { public: A() {} ~A() {} public: void setA(T a) { _a = a; } T g...原创 2019-08-06 00:05:04 · 469 阅读 · 0 评论 -
基于grpc快速搭建rpc服务实例
第1步:安装protobufhttps://github.com/protocolbuffers/protobuf/releases 下载最新版本protobuf-cpp-3.6.1.tar.gztar -zxvf protobuf-cpp-3.6.1.tar.gzcd protobuf-3.6.1/./autogen.sh && ./configuremake &a...原创 2018-11-11 00:59:09 · 1199 阅读 · 0 评论 -
冒泡排序总结
在开发中,对一组数据进行有序地排列是经常需要做的事情,所以掌握几种甚至更多的排序算法是绝对有必要的本文章介绍的是排序算法中较简单的一种算法:冒泡排序题外话:在深入学习更多排序算法后和在实际使用情况中,冒泡排序的使用还是极少的。它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的先尝试用最简单的想法去实现排序,以此来比较学习冒转载 2017-05-26 13:31:21 · 592 阅读 · 0 评论 -
C++ 字节对齐分析,struct成员指定位大小
阅读C++ Concurrency In Action 第5章遇到这个问题,记录下来,方便以后回头看主要涉及 位域和字节对齐问题,位域一般不常见,属于C/C++高级特性位域指的是针对struct成员指定位大小,位域的作用主要是节省内存资源,使数据结构更紧凑原书这样描述:无论什么类型,对象均被存储于一个或多个内存位置中,每个这样的内存位置要么是一个标量类型的对原创 2016-10-10 17:48:25 · 4474 阅读 · 0 评论 -
437. Path Sum III
You are given a binary tree in which each node contains an integer value.Find the number of paths that sum to a given value.The path does not need to start or end at the root or a leaf, but it原创 2016-10-26 12:24:17 · 414 阅读 · 0 评论 -
113. Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.For example:Given the below binary tree and sum = 22, 5 / \原创 2016-10-26 11:24:57 · 277 阅读 · 0 评论 -
C++ Defaulted 和 Deleted 函数
C++11 标准新特性:Defaulted 和 Deleted 函数本文将介绍 C++11 标准的两个新特性:defaulted 和 deleted 函数。对于 defaulted 函数,编译器会为其自动生成默认的函数定义体,从而获得更高的代码执行效率,也可免除程序员手动定义该函数的工作量。对于 deleted 函数, 编译器会对其禁用,从而避免某些非法的函数调用或者类型转换,转载 2017-01-13 17:16:48 · 430 阅读 · 0 评论 -
Google C++ 命名约定
6. 命名约定最重要的一致性规则是命名管理. 命名风格快速获知名字代表是什么东东: 类型? 变量? 函数? 常量? 宏 ... ? 甚至不需要去查找类型声明. 我们大脑中的模式匹配引擎可以非常可靠的处理这些命名规则.命名规则具有一定随意性, 但相比按个人喜好命名, 一致性更重, 所以不管你怎么想, 规则总归是规则.6.1. 通用命名规则Tip函数命名,变量命转载 2017-01-13 17:25:05 · 294 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
C++ 类的静态成员详细讲解在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即类名>::静态成员名>。 在C++中类的静态成员变量和静态成员函数是个转载 2017-01-13 18:29:04 · 267 阅读 · 0 评论 -
单例模式(Singleton)及其C++实现
单例模式(Singleton)及其C++实现众多设计模式中,单例模式比较常见的一种,面试和工作中也会经常接触到。本文以一个C++开发者的角度来探讨单例模式几种典型实现。设计模式经典GoF定义的单例模式需要满足以下两个条件:保证一个类只创建一个实例。提供对该实例的全局访问点。如果系统有类似的实体(有且只有一个,且需要全局访问),那么就可以将其实现为一个单例。实际工作中常见的应用举例日志类,一个应用往...转载 2018-04-17 23:59:53 · 8302 阅读 · 0 评论 -
494. Target Sum
You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you have 2 symbols + and -. For each integer, you should choose one from + and - as its new symbol.Find out原创 2017-02-06 17:00:21 · 2852 阅读 · 0 评论 -
486. Predict the Winner
Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from either end of the array followed by the player 2 and then player 1 and so on. Each time a player picks a原创 2017-02-07 14:36:31 · 1752 阅读 · 0 评论 -
375. Guess Number Higher or Lower II
We are playing the Guess Game. The game is as follows:I pick a number from 1 to n. You have to guess which number I picked.Every time you guess wrong, I'll tell you whether the number I pi原创 2017-02-09 15:01:41 · 283 阅读 · 0 评论 -
C++ 深拷贝与浅拷贝
C++的深拷贝与浅拷贝标签: 深拷贝浅拷贝拷贝构造函数2014-09-02 15:35 18873人阅读 评论(3) 收藏 举报 分类:C++语言(13) 对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个转载 2017-01-19 11:10:25 · 294 阅读 · 0 评论 -
C/C++ 类默认生成的四个函数
序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数一,默认构造函数 默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。 如果用户定义的类中没有显式的定义转载 2017-01-19 17:20:07 · 2484 阅读 · 0 评论 -
376. Wiggle Subsequence
A sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be either pos原创 2017-02-10 11:10:11 · 346 阅读 · 0 评论 -
148. Sort List
Sort a linked list in O(n log n) time using constant space complexity.http://oj.leetcode.com/problems/sort-list/解题报告:就是对一个链表进行归并排序。主要考察3个知识点,知识点1:归并排序的整体思想知识点2:找到一个链表的中间节点的方法知识点3:合并两个已转载 2017-03-23 10:30:56 · 300 阅读 · 0 评论 -
【C++11】新特性——auto的使用
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。转载 2015-07-22 20:26:31 · 375 阅读 · 0 评论