FlushHip

现在的自己不开心也不难过,只为寻求心灵上的一丝成就感。

线段树浅析及其指针式C/C++写法

hihocoder 19 - 22 线段树节点的数据结构 typedef struct Node { int data; Node *lchs, *rchs; Node (int data = 0, Node *lchs = nullptr, Node *rchs ...

2019-04-23 16:33:40

阅读数 137

评论数 0

C++实现URL的UTF8转码

urlurlurl不能出现中文,导致不能传输中文数据,解决方法有下面两个: 统一使用base64base64base64转换一下; 把中文用UTF-8存储,然后对其进行可视化编码,这也是浏览器的做法。 先来看下,一条urlurlurl在浏览器中会被转化成什么样,可以用在线的网址转一下。 be...

2019-03-15 17:11:26

阅读数 72

评论数 0

从一道多线程题来看C++11中条件变量std::condition_variable的使用和原理

现在有一道笔试题是下面这样子的。 有两个线程,一个线程循环输出A,另一个线程循环输出B,如何让这两个线程在控制台稳定输出ABABAB…。 不用思考太多,我们肯定会定义一个标志变量isTurnA,isTurnA为true输出A,同理输出B,这是一种最简单的有限状态机,只要按照这个状态机进行,那么...

2019-03-07 17:26:01

阅读数 63

评论数 0

利用googletest命令行参数简化单元测试

首先看看gtest如何写: #include <gtest/gtest.h> int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv);...

2019-02-26 18:05:35

阅读数 89

评论数 0

小米OJ - 灯 - 仔细分析找规律

题目描述 链接:Here。 一个屋子有 nnn 个开关控制着 nnn 盏灯,但奇怪的是,每个开关对应的不是一盏灯,而是 n−1n-1n−1 盏灯,每次按下这个开关,其对应的 n−1n-1n−1 盏灯就会由亮变灭,或者由灭变亮。保证不会有两个开关控制同样的 n−1n-1n−1 盏灯。 现在刘同学想把...

2019-02-15 16:22:35

阅读数 216

评论数 0

小米OJ - 找到第 N 个数字 II - 等差数列求和及其通项然后二分

题目描述 链接:Here。 假如有一组字符串符合如下规律: S1=1S2=12S3=123S4=1234⋯S9=123456789S10=12345678910⋯S18=123456789101112131415161718 \begin{array}{} S_{1} =1\\ S_{2} =1...

2019-01-25 12:19:48

阅读数 433

评论数 1

聊聊C++标准库中优先队列priority_queue的源码

C++标准库提供了优先队列priority_queue,顾名思义,就是可以按照优先级出队的队列,而且时间复杂度为O(logn)O(logn)O(logn),算法中有很多优化项就是用优先队列来优化的。 C++11的标准库是怎么构造出优先队列的呢?优先队列是用堆来构造的。所以,优先队列其实并不能叫队列...

2019-01-02 20:47:33

阅读数 166

评论数 0

聊聊C++11标准库中堆(heap)算法的源码

STL中支持堆操作,对外暴露了`std::make_heap`,`std::push_heap`,`std::pop_heap`,`std::sort_heap`,`std::is_heap`,`std::is_heap_until`这6个函数,详细的使用方法可以参见[图解STL中算法的分类、简介...

2018-12-29 16:25:21

阅读数 450

评论数 0

2019年全国研究生入学考试计算机学科专业基础综合(408)数据结构编码题

有一个带头节点的单向链表(a1,a2,…,an−1,an)(a_1, a_2,\dots,a_{n-1},a_n)(a1​,a2​,…,an−1​,an​),nnn为偶数,使用空间复杂度为O(1)O(1)O(1)的算法使其变成(a1,an,a3,an−2,…,a4,an−1,a2)(a_1, a_...

2018-12-25 14:15:37

阅读数 2673

评论数 9

Windows/Linux下C++对于UUID的跨平台封装

Universally Unique Identifier,UUID,通用唯一识别码。是用于计算机体系中以识别信息数目的一个128位标识符,这个东西很有用,在分布式系统中经常用于标识一个结点。根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性,这与其他大多数编号方案不同。重复UUID...

2018-12-19 16:29:28

阅读数 576

评论数 0

Windows下C++程序实现单例运行

在Windows下,有些程序是需要单例运行的,比如QQ和Wechat吧。 QQ可以打开多个 Wechat只能打开一个 可以自己在Windows下点一点就知道了。 那么在Windows下如何实现单例运行呢?这个单例运行和代码的单例设计模式是不是一个东西呢?一一来回答。 首先单例模式和这个肯定是不...

2018-12-17 19:36:38

阅读数 559

评论数 0

Go利用windres.exe和.rc文件在Windows下生成的程序带有版本、版权、产品名称、图标等属性信息

用Go在Windows下写了一个.exe的程序,这个程序默认是不带版本,版权,产品名称以及图标的,因此,这些东西我们要自己去生成。 Go对于程序版本这方面已经有了开源的包,见GitHub - https://github.com/josephspurrier/goversioninfo。 你可以自...

2018-12-13 12:22:18

阅读数 321

评论数 1

Windows下C++得到一个空闲的端口API

这个东西,并不太常用,客户端弄一个Tcp连接,也不需要你去指定端口,系统会自动找一个空闲的端口给你; 但是,如果在服务器端,手动得到一个空闲端口是很重要的,毕竟这个端口要固定,因此需要你自己指定一个空闲的端口。 那么在Windows下,如何利用C++得到一个空闲的端口呢,答案是Windows的AP...

2018-12-05 18:30:57

阅读数 587

评论数 0

C++中实现HMAC单向散列类

HMAC的维基百科解释是:hash-based message authentication code,其实就是加了盐的单向散列算法。而HMAC的重点就是如何给要散列的数据加盐。 加盐公式如下: 解释一下上面的符号: ⊕\oplus⊕表示异或运算; mmm表示要散列的数据; a∣∣ba || ...

2018-12-05 14:34:28

阅读数 320

评论数 0

Windows关机重启API封装

这纯属记录下代码,Windows系统在程序中关机和重启电脑。 大体上就是两个步骤: - 拿关机权限 - 关机 需要注意的点,一定要在`ExitWindowsEx`中加上`EWX_FORCE`参数,不然,在Windows锁屏界面下是关不了机或者重启不了的。

2018-11-30 16:15:40

阅读数 198

评论数 0

C++中std::string与C-String字符数组的互相转换

C语言中只有字符数组这一说法,没有C++专门封装的字符串类std::string。而字符数组C-String以\0作为结束符。std::string其实还是存储了C-String这个指针,只不过不同的编译期对std::string中的存储结构都做了不同的处理,这里我们不讨论std::string的...

2018-11-27 14:30:00

阅读数 596

评论数 0

招商银行信用卡中心2019秋招IT笔试(AI、开发、测试开发方向)第二批

X游戏 题目 我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。 如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对...

2018-11-19 22:32:07

阅读数 1246

评论数 0

招商银行信用卡中心2019秋招IT笔试(AI、开发、测试开发方向)第三批

员工考勤记录 题目 给定一个字符串来代表一个员工的考勤纪录,这个纪录仅包含以下两个字符: ‘A’ : Absent,缺勤 ‘P’ : Present,到场 如果一个员工的考勤纪录中不超过两个’A’(缺勤),那么这个员工会被奖赏。 如果你作为一个员工,想在连续N天的考勤周期中获得奖赏,请问有多少种考...

2018-11-19 12:09:41

阅读数 1657

评论数 0

招商银行信用卡中心2019秋招IT笔试(AI、开发、测试开发方向)第一批

鸡鸭分类问题 题目 农场有n只鸡鸭排为一个队伍,鸡用“C”表示,鸭用“D”表示。当鸡鸭挨着时会产生矛盾。需要对所排的队伍进行调整,使鸡鸭各在一边。每次调整只能让相邻的鸡和鸭交换位置,现在需要尽快完成队伍调整,你需要计算出最少需要调整多少次可以让上述情况最少。例如:CCDCC-&am...

2018-11-19 00:10:17

阅读数 2254

评论数 2

聊聊实现C++跨平台ping函数及ICMP请求回显数据包解析

ping我们经常使用,大多数的时候是在命令行ping下IP地址,然后一堆输出。 程序中有时候也会用ping函数,那么ping是如何实现的呢。 计算机网络告诉我们,ping函数是基于ICMP协议实现的,而ICMP协议又是基于IP协议弄的(ICMP作为IP协议的数据部分传输)。 ping通过ICMP协...

2018-11-12 17:26:59

阅读数 398

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭