- 博客(90)
- 资源 (14)
- 收藏
- 关注
原创 STL 优先队列 priority_queue
在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列是一个队列,具有队列的所有特性,包括队列的基本操作,在这基础上添加了内部的一个排序(堆排序),它本质是一个堆实现的。priority_queue<Type, Container, Functional>当需要用自定义的数据类型时才需要传入 Type, Container, Functional 这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆。Type: 数据类型Container: 容器
2022-03-16 14:56:22 1219
原创 When Cloud Storage Meets RDMA
When Cloud Storage Meets RDMA1、Introduction阿里巴巴在内的众多公司已经将其核心业务系统转移到云上。作为信息技术(IT)基础设施的基本组成部分,云存储向云提供商内外的租户提供存储服务。2009年,阿里巴巴推出了云存储系统Pangu(盘古),随后在阿里巴巴的许多核心业务中发挥了至关重要的作用。截至2020年,盘古已经部署在数百个集群中,并管理着数十万个存储节点。此外,它还支持在许多生产环境中对EB级数据的实时访问。(1 EB = 1,024 PB = 1,048,5
2022-03-01 16:53:08 1338
原创 排序:选择排序、交换排序和归并排序
选择排序选择排序的基本思想是:每次从待排序的文件中选择出排序码最小的记录将该记录放于已排序文件的最后一个位置,直到已排序文件记录个数等于初始待排序文件的记录个数为止。直接选择排序(不稳定排序)树型选择排序堆排序(不稳定排序)直接选择排序直接选择排序是一种简单的方法,首先从所有n个待排序记录中选择排序码最小的记录举该记录,将该记录与第1个记录交换,再从剩下的n-1个记录中选出排序码最小的记录和第 2个记录交换。重复这样的操作直到剩下两个记录时,再从中选出排序码最小的记录和第n-1个记录交换.
2022-02-22 14:39:15 2751 1
原创 重载构造函数 初始化列表
重载构造函数 初始化列表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x
2022-02-21 16:56:38 523
原创 C++ STL
C++ STLstringvectorsetunordered_setlistmapstringstring s1;//初始化字符串,空字符串string s2 = s1; //拷贝初始化,深拷贝字符串string s3 = "I am Yasuo"; //直接初始化,s3存了字符串string s4(10, 'a'); //s4存的字符串是aaaaaaaaaastring s5(s4); //拷贝初始化,深拷贝字符串string s6("I am Ali"); //直接初始化
2022-02-15 14:06:18 261
原创 ACM LaTeX模板 删除页眉
ACM LaTeX模板 删除页眉尝试了网上各种办法都没用 页眉始终还在后来从SIGCOMM模板中替换了acmart.cls再用网上如下的方式更改pagestyle的方法即可,但是改完会发现文字大小略有增大\usepackage{fancyhdr}\pagestyle{empty}后来尝试在acmart.cls文件中搜索pagestyle关键词 修改原有第2679行中的参数为empty,终于成功将页眉删除!!!!!...
2022-01-29 19:22:26 5312 4
原创 PMDK 安装
PMDK 安装1、下载PMDKgit clone https://github.com/pmem/pmdk.git2、安装依赖安装autoconf和 pkg-configsudo apt-get install autoconfsudo apt-get install pkg-config安装libndctl-devel和libdaxctl-develsudo apt-get install libndctl-develsudo apt-get install libdaxctl-d
2021-12-02 11:17:48 1167
转载 SIMD指令
转载:https://www.sunxidong.com/357.htmlSIMD原理1、SIMD简介SIMD全称Single Instruction Multiple Data,单指令多数据流,即一条指令处理多条数据,是对CPU基本指令集对扩展。Intel的初代SIMD指令集是MMX,Multi-Media Extension, 即多媒体扩展,因为它的首要目标是为了支持MPEG视频解码。MMX将64位寄存当作2X32或8X8来用,只能处理整型计算。后来Intel进一步实现了SSE、SSE2~SS
2021-09-16 11:02:24 4681
转载 RDMA send/recv 和 read/write操作
RDMA one-side 和 two-side原语在RDMA传输中,SEND/RECEIVE是双边操作,即需要通信双方的参与,并且RECEIVE要先于SEND执行,这样对方才能发送数据,当然如果对方不需要发送数据,可以不执行RECEIVE操作,因此该过程和传统通信相似,区别在于RDMA的零拷贝网络技术和内核旁路,延迟低,多用于传输短的控制消息。WRITE/READ是单边操作,顾名思义,读/写操作是一方在执行,在实际的通信过程中,WRITE/READ操作是由active即客户端来执行的,而passive即
2021-07-28 10:26:17 2981
原创 Optane PM
Fig 1.Hardware components of a node with NVM in an RDMAcapable cluster.图 1 的右半部分展示了PM组件的概览。 数据存储在 NVM DIMM (3D XPoint) 中,而 XController (XCtrl) 将来自处理器/PCIe 的读/写请求转换为对 3D XPoint 的读/写请求。 XCtrl 有两个重要的特性。 首先,它以缓存行 (CLine) 粒度 (64B) 接收请求,而 3D XPoint 以 XPLine 粒度.
2021-07-27 09:47:53 302
原创 linux下手动安装编译的通用步骤
标题安装编译的通用步骤在自己的下载目录中:1、在官网下载压缩包wget xxx2、解压文件tar -zxf xxx3、开始编译安装,查看解压的目录下的文件,是config还是autogen之类的,来决定使用./autogen.sh还是config、cmake命令编译./config —prefix 路径 或者./autogen.sh(这里的路径可以是自己默认的通常存放二进制文件的路径,可以忽略不带路径,使用系统默认的)4、make5、make install安装完成后
2021-07-22 13:00:02 388
原创 持久化内存挑战PERSISTENT MEMORY CHALLENGES
持久化内存挑战翻译自论文:Memory Management Techniques for Large-Scale Persistent-Main-Memory SystemsStorage Class Memory (SCM) 带来的独特机遇带来了一系列新的编程挑战(1)data consistency 数据一致性; (2) 数据恢复 data recovery; (3) persistent memory leaks 持久性内存泄漏; (4)partial writes 部分写入; (5) pers
2021-07-21 19:47:15 1370
转载 页面置换算法 FIFO、OPT、LRU、CLOCK
转自:https://www.cnblogs.com/wingsless/p/12295246.html1.前言缓冲池是数据库最终的概念,数据库可以将一部分数据页放在内存中形成缓冲池,当需要一个数据页时,首先检查内存中的缓冲池是否有这个页面,如果有则直接命中返回,没有则从磁盘中读取这一页,然后缓存到内存并返回。但是内存的价值较高,一般来说服务器的内存总是小于磁盘大小的,而且内存不能完全分配给数据库作为缓冲池。这就意味着数据库基本上无法将所有的数据都缓冲到内存中。当缓冲池满后,如果还有新的页面要被缓冲
2021-07-15 09:41:44 905
原创 傻傻分不清楚的CentOS和Ubuntu的命令和区别
傻傻分不清楚的CentOS和Ubuntu的命令和区别下载命令CentOS:yumUbuntu:apt-get网卡CentOS:emN(em0, em1…)Ubuntu:ethN(eth0, eth1…)
2021-07-09 11:21:17 652
转载 2021-07-09
标题linux 常见重要文件转载:https://www.cnblogs.com/linuxsec/articles/6189146.html?ivk_sa=1024320u/binbin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。/boot这里存放的是启动Linux时使用的一些核心文件。/devdev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在L
2021-07-09 10:55:19 193
原创 PMDK的笔记
PMDKpmemobj_create 创建NVM作为一种快速、可字节寻址、持久型的存储,在被以DAX暴露在用户态以后,可以在其上创建很多被mmap的文件,这些被mmap的文件就称之为内存池(Memory pools),当然,有了pmdk之后,内存池的创建就不需要我们自己手动mmap了,可以使用pmemobj_create来完成,接口定义:#define pmemobj_create pmemobj_createWPMEMobjpool *pmemobj_createW(const wchar_t
2021-06-01 14:38:58 927
原创 高速缓存的读写
高速缓存的读写问题读操作缓存命中cache hit当程序需要第k+1层的某个数据对象d时,它首先在当前存储在第k层的一个块中找d,如果d刚好缓存在第k层中,那么就是我们所说的缓存命中(cache hit)。该程序直接从第k层读取d,根据存储器层次结构的性质,这要比从第k+1层读取d更快。例如,一个有良好时间局部性的程序可以从块14中读出一个数据对象,得到一个对第k层的缓存命中。缓存不命中另一方面,如果第k层中没有缓存数据对象d,那么就是我们所说的**缓存不命中(cache miss)**当发生缓
2021-05-08 16:18:08 809
原创 ROART内存安全 内存泄露
ROART 中的memory safety问题NVM allocators分为两类:1)logging-based allocator使用logging确保操作的原子性,引入了额外的持久化开销。2)post-crash GC在恢复期间,扫描所有的内存区域来回收垃圾数据。减少了在allocation/deallocation操作时的持久化开销,但是随着数据量的增加从而遭受非常长的恢复时间。Allocation Performance:(作者测试了五种常用的NVM分配器)3,4,5,2,1 -
2021-04-20 10:13:49 517
原创 ASPLOS’19 Parties
ASPLOS’19 PartiesPARTIES: QoS-Aware Resource Partitioning for Multiple Interactive ServicesAbstract这限制了多租户的高效收益,特别是随着越来越多的云应用程序从批量作业转换到具有严格延迟要求的服务 。Parties:一个QoS感知资源管理器,它可以启用任意数量的交互式latency-critical(LC)服务,以共享没有QoS干扰的物理节点。 Parties利用一组硬件和软件资源分区机制,以在运行时中动
2021-04-12 10:37:54 786
原创 Mac Python 画图显示中文乱码
Mac Python 画图显示中文乱码别的一些解决方案没用,仍然是乱码,下面的代码亲测有效!!!import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
2021-01-26 15:38:38 318 1
原创 简化SSH登录命令和配置免密登录
简化SSH登录命令echo alias ssh204=\'ssh username@IP\' >> .bashrcsource .bashrc配置免密登录在服务器上输入如下命令,连续回车两次ssh-keygen在本地主机使用命令,复制结果,追加到服务器~/ .ssh/authorized_keys文件中,服务器上若没有该文件,则创建一个cat ~/ .ssh/id_rsa.pub若上述步骤完成后,登录时仍然需要输入密码,可能是authorized_keys文件的权限不够。
2021-01-24 22:04:30 320
原创 信安、网安保研夏令营分享(同济,华师,东南、复旦、中科大、北航)
信安/网安保研夏令营分享想趁着自己还记得写一篇分享。先介绍一下个人情况吧。专业信息安全学校末流211排名2/170获奖经历几个有关数模的奖科研经历两段海外项目经历两段4/6级571/538投简历的时候每个感兴趣的学校都投了。大概是五月份初吧,开始准备那些资料(成绩排名证明、老师推荐信、个人陈述、中英文自我介绍之类的)。由...
2019-09-27 12:24:59 10453 8
原创 华东师范大学高可信夏令营 机试
章鱼王的行宫要铺瓷砖了。行宫中有一长度为 N(N≤30) 的地板,给定三种不同瓷砖:一种长度为1,一种长度为2,另一种长度为3,数目不限。要将这个长度为 N 的地板铺满,并且要求任意两个相邻的瓷砖长度均不等,一共有多少种不同的铺法?在所有的铺设方法中,一共用了长度为1的瓷砖多少块?行宫中有一长度为 N(N≤30) 的地板,给定三种不同瓷砖:一种长度为1,一种长度为2,另一种长度为3,数...
2019-06-30 11:40:52 1238
原创 给定两个二叉树,编写一个函数来检验它们是否相同
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNod...
2019-06-25 09:20:20 1363
原创 C++简单文件输入输出
#include<iostream>#include<fstream>using namespace std;int main() { ifstream in("try.txt"); int a[4]; for (int i = 0; i < 4; i++) { in >> a[i]; //读入文件 } for (int i ...
2019-05-05 16:00:45 211
原创 LeetCode 写给自己 指针
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* ad...
2019-04-21 19:16:31 160
原创 结构体 vector 排序
#include<iostream>#include<vector>#include<algorithm>using namespace std;struct stu{ string name; int score; stu(string name1,int score1):name(name1),score(score1){ }}; bo...
2019-03-22 09:49:25 346
原创 油漆面积 蓝桥杯 C++ A组
标题:油漆面积X星球的一批考古机器人正在一片废墟上考古。该区域的地面坚硬如石、平整如镜。管理人员为方便,建立了标准的直角坐标系。每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。经过各种测量,每个机器人都会报告一个或多个矩形区域,作为优先考古的区域。矩形的表示格式为(x1,y1,x2,y2),代表矩形的两个对角点坐标。为了醒目,总部要求对所有机器人选中的矩形区域涂黄色油漆。...
2019-03-21 16:49:24 463
原创 分巧克力 蓝桥杯 A组 C++ 二分法
标题: 分巧克力儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋...
2019-03-21 15:50:25 228
原创 substr 取出字符串的所有子串
substr(pos,n):表示从下标为pos处,取连续n个字符的子串!!!(我原先以为两个参数是起始下标和终点下标,答案怎么都不对)#include<iostream>#include<cstring>#include<set>using namespace std;int main(){ string s; set<str...
2019-03-20 21:42:45 970
原创 循环数比较 C++
题目描述对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) = 123412341234,repeat(20,2) = 2020.牛牛现在给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2, k2),请你来比较v1和v2的大小。输入描述:输入包括一行,一行中有4个正整数x1, k...
2019-03-20 20:54:20 687
原创 蓝桥杯 A组 C++ 跳蚱蜢 bfs
标题:跳蚱蜢如图 p1.png 所示:有9只盘子,排成1个圆圈。其中8只盘子内装着8只蚱蜢,有一个是空盘。我们把这些蚱蜢顺时针编号为 1~8每只蚱蜢都可以跳到相邻的空盘中,也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列,并且保持空盘的位置不变(也就是1-8换位,2-7换位,…),至少要经过多少次跳跃?注意:要求提交的是一个整数...
2019-03-20 16:22:44 373
原创 蓝桥杯 C++ 带分数
问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N<1000*1000)输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的...
2019-03-19 18:51:41 548
原创 蓝桥杯 翻硬币
问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作...
2019-03-18 19:02:55 432
原创 蓝桥杯 分考场
问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。输入格式 第一行,一个整数n(1<n<100),表示参加考试的人数。 第二行,一个整数m,表示接下来有m行数据 以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个人认识。输出格式 ...
2019-03-18 16:46:26 291
原创 蓝桥杯 密码脱落 C++
密码脱落X星球的考古学家发现了一批古代留下来的密码。这些密码是由A、B、C、D 四种植物的种子串成的序列。仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。你的任务是:给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。输入一行,表示现在看到的密码串(长度不大于...
2019-03-17 09:46:44 283
原创 printf 输出 格式修饰符
printf 格式修饰符#include&lt;iostream&gt;#include&lt;stdio.h&gt;using namespace std;int main(){ float a = 123.4567890; int b = 12; printf("123456789"); cout&lt;&lt;endl; printf(&qu
2019-03-15 16:12:06 1111
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人