
c++
文章平均质量分 58
海棠花不香
这个作者很懒,什么都没留下…
展开
-
windows编译TensorFlowServing
的某些源码文件时会遇到耗时特别长的问题,目前还不清楚是什么问题导致。表示将所有依赖的外部库源码下载到这个目录,且编译中生成的中间文件,缓存文件,静态库以及二进制文件均存放此目录。下的编译流程,配置环境,执行编译命令,根据编译器/链接器反馈的错误,修改相应的源码或者相关库文件的存放路径,编译出。该操作可让编译继续进行,但可能会导致调试信息缺失的问题,请谨慎操作。如遇到下载不成功,重复执行即可。选项,指定目录存放所有下载的源码文件,也可参考下一节中的。,这里采用64位的编译工具编译,解决虚拟内存不足的问题。原创 2024-01-17 19:02:55 · 1336 阅读 · 0 评论 -
和最小的K个数对
分析:观察一下解这套题逻辑,先把数组1的第一个数和数组2的第一个数组成一对,这就是第一个最小的数对。要么是数组1的第二个数和数组2的第一个数(5, 2)。所以不断根据上一个最小的数对,把比上一个数大一点的数加入到队列中,再进行比较,直到找出所有的k个最小的数对。给定两个递增排序的整数数组,从两个数组中各取一个数字u和v组成一个数对(u, v),请找出和最小的k个数对。例如,输入两个数组[1, 5, 13, 21]和[2, 4, 9,15],和最小的3个数对为(1, 2)、(1, 4) 和 (2, 5)。原创 2023-03-12 22:19:27 · 164 阅读 · 0 评论 -
memcpy不适用的场景
这段代码表示,在数据量较少的拷贝,比如16个字节以内,也就是4个整形数据的长度,采用一个循环赋值的方式,逐字节的将源地址的数据赋值到目的地址上,且忽略字节对齐和重叠的情况。假如,我们知道拷贝的数据是固定长的字节,比如一个整数,4个字节,那么采用memcpy也是可以的,但是显然,不需要做那么多循环操作,分4次将整数数据拷过去。这是曾经碰到一个面试题,当时没回答上来。那如果是小于16字节的拷贝,可以发现这个操作相当于是用一串宏定义去代替,宏定义是由预处理器展开,没有函数的参数压栈,减少调用开销,所以非常高效。原创 2023-03-05 20:43:53 · 734 阅读 · 0 评论 -
python的装饰器与设计模式中的装饰器模式
相信很多人在初次接触python中的装饰器时,会跟我一样有个疑问,这跟设计模式中的装饰器模式有什么区别吗?本质上是一样的,都是对现有对象,包括函数或者类的一种扩展。这篇文档将进行对比分析。原创 2023-02-26 21:54:38 · 564 阅读 · 0 评论 -
windows上编译安装pytorch的c++扩展
需要在python的安装目录D:\Python36WindowsTensorflow\Python36\Lib\distutils\disutils.cfg中作如下改变(如果没有这个文件,自行创建即可)推测原因为,由于python和pytorch都是有msvc编译的出的静态库.lib和动态库.dll,如果采用g++链接,会由于不同编译器上对函数的编码规则,而无法找到相关的引用。在使用vs2015的编译工具cl.exe,由于对c++14中常量表达式的支持不好,会遇到很多错误。原创 2022-10-31 09:44:29 · 964 阅读 · 0 评论 -
常见任务中的双重while循环的结构
重组数组问题可以表述为输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。核心代码如下void reorder(int *arr, int len){ if (arr == nullptr || len <= 0) return; int *bgn = arr; int *end = arr + len - 1; while (bgn < end) {原创 2022-05-17 20:34:05 · 1579 阅读 · 0 评论 -
编译期编程
自从c++98开始,可以使用循环和路径选择执行的方式,在程序编译期执行计算。比如计算一个数是否为素数,可以使用如下的模板来实现:template<unsigned p, unsigned d>struct DoIsPrime{ static constexpr bool value = (p%d != 0) && DoIsPrime<p, d-1>::value;};template<unsigned p>struct DoIsPri原创 2022-05-05 15:13:06 · 420 阅读 · 0 评论 -
玩转位运算
玩转位运算题目1,考察一个二进制表示的数,奇数位上的数字全部为1时,返回1。否则返回0。比如allOddBits(0xFFFFFFFD) = 0, allOddBits(0xAAAAAAAA) = 1。思路,先构造一个奇数位上都为1的数,即0xAAAAAAAA。 任何数,与这个数位与(&)后,奇数位为1的位置仍为1,为0的位置将为0;偶数位上的数将转化为0。再跟这个数异或,则满足要求的数将转化为0,不满足要求的数为非0。取反即可。int allOddBits(int x) { int a原创 2022-04-27 11:37:10 · 1141 阅读 · 0 评论 -
初始化列表vs列表初始化
这两个概念如此相似,以至于很多时候都在混用。初始化列表是构造函数的周边概念,表示在执行构造函数中,先执行初始化列表,再执行函数体内的语句。构造函数的编写尽量采用初始化列表的方式,特别是类中有自定义类出现的时候。而且有些情况,必须采用初始化列表才能初始化成员变量,如类中有引用类型,类中有const成员变量时等。class myclass{public: myclass(int a, int b, int c):m_a(a),m_b(b),m_c(c) { std::c原创 2022-02-10 14:56:23 · 954 阅读 · 0 评论 -
面试题之c++11新特性,你真的会答吗
也许你看过类似“c++11必背十大新特性”之类的文章,所以背起来毫不费劲。但一顿输出之后,发现面试官的表情如同一潭死水,没有丝毫波澜。是的,这种答案过于稀松平常,并不能为你的面试增色多少,只能保证不减分。那么怎样的回答可以让面试官有一些意外和惊喜?请看以下分析。c++11是在c++98/03之后一次比较大的改进,大大小小的新特性一百多个,我们在有限的时间只能选择性的回答一些比较常用,同时能避免同质性的一些性质。什么是同质性?就是你背了auto又背decltype,背了shared_ptr又背unique_原创 2022-01-24 20:27:57 · 1294 阅读 · 0 评论 -
fatal error C1083 无法打开包括文件 “sys/time.h” No such file or directory
通常在跨平台编程的时候会遇到这个问题。sys/time.h是linux目录下的文件,里面有gettimeofday这种函数。这个问题,可以转化为,如果要在windows下实现任务计时间的功能,该如何做?根据精度要求可选择以下两种方式。精度要求不高(毫秒级)头文件:windows.h函数声明:DWORD WINAPI GetTickCount(void)其中DWORD的类型为无符号长整型,声明如下:typedef unsigned long DWORD;功能:返回自设备启动后的毫秒数用法演示:原创 2022-01-17 11:21:32 · 4560 阅读 · 0 评论 -
MinGW-w64在windows/ubuntu上的安装及使用
Minimalist GNU on Windows。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。也就是说,MinGW 就是 GCC 的 Windows 版本 。这里介绍其两种用法。在ubuntu18.04上编译出exe文件ubuntu上安装MinGW64命令行安装sudo apt-get updatesudo apt-get install mingw-w64执原创 2022-01-14 20:48:23 · 16808 阅读 · 2 评论 -
前缀树Trie
Trie树,即字典树,是一种树形结构,是一种哈希树的变种。主要用来统计和排序大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。这里提供前缀树的封装接口,增加,删除,查询,获取。#include <iostream>#include <cstring>#include <string>#include <vector原创 2021-10-14 16:24:42 · 107 阅读 · 0 评论 -
常用设计模式这样学
常用设计模式这样学 如果你也跟笔者一样,初学模式的时候,20多种设计模式让你眼花缭乱,不知道如何下手,可以试试这里提出的方法。无论面试,或者重构代码的时候,都能知道相应设计模式的使用场景。简而言之,就是案例记忆法。通过记住每个设计模式的典型案例,达到对常用的几个设计模式了然于胸的境界。这里列举常用的5种设计模式,一般面试和简单的使用场景均能覆盖。如果希望掌握全部的设计模式,可以用这种方法总结剩下的模式。模板方法模式 – 动物园表演流程 模板模式的关键词是,流程固定。这个设计模式适合流程固定的情况。原创 2021-08-22 21:18:40 · 143 阅读 · 0 评论 -
c++ 虚函数小结
主要是Effective C++ 中设计到virtual用法的小结。这本书中涉及virtual的条款并不多,主要包括条款07,条款09,条款34,条款35和条款36。先列出这几个条款的标题。07 为多态基类声明virtual析构函数09 绝不在构造和析构函数中调用virtual函数34 区分接口继承和实现继承35 考虑virtual函数以外的其他选择36 绝对不重新定义继承而来的non-virtual函数这里面有几个可以直接在后面加个问号,换成面试题。...原创 2021-08-14 22:12:00 · 117 阅读 · 0 评论