- 博客(70)
- 资源 (2)
- 收藏
- 关注
原创 c语言计算文件大小(超级完整版本)
在网上看到各式各样的文件大小计算,都涉及到一个问题:即将文件指针指向文件尾部之后就调用fclose,如果在写项目的时候这样做肯定不行接下来是我个人总结的 FILE *pread = fopen(cmsg->un.fileInfo.filename,"rb"); //打开失败 if (pread==NULL) { printf("无此文件!"); } //这三行是计算文件大小 fseek(pread, 0, SEEK_END); g_fileSize = ftell(pread);
2021-07-07 09:40:08 1682 4
原创 c++的vector初始化
一维向量vector<int> vector_1D_1;//只定义向量vector<int> vector_1D_2(n);//定义的同时初始化大小vector<int> vector_1D_3(n,m);//定义的同时初始化大小为n,元素初始值为m//先定义变量,再初始化大小和初值vector<int> vector_1D_4;vector_1D_4=vector<int>(n,m);二维向量vector<vector&
2021-05-25 22:10:12 1455
原创 关于_IO_UNBUFFERED和_IO_LINE_BUF是未定义的相关问题
在复现APUE的p131页的代码时候,总是有报错,而报错相关的消息就是_IO_UNBUFFERED和_IO_LINE_BU这几个宏是未定义的我用的是Ubuntu系统gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)第一反应是 是否没有加入相关头文件,但是Google了好久都发现这几个宏定义都均在<stdio.h>中,因此心态直接爆照!接着参阅了国外的一些网站上的,都没有这些问题的解决办法,但是半摸索着找到了两种解决办法,我都试了一遍发现都
2021-05-21 10:33:55 674
原创 In function `_start‘: (.text+0x20): undefined reference to `main‘(linux中main编译出错)
在vscode上编译之后就会出现如标题的错误原因是:没有保存!!记得按ctrl+s!
2021-05-18 14:59:21 4983 3
原创 apue:第三章 文件I/O
所有章节在此链接文件I/O前言文件描述符函数open和openat前言unix系统发多数文件I/O只用到了5个函数:open、read、write、lseek以及close术语“不带I/O的缓冲”指的是每个read和write都调用内核中的一个系统调用(内核调用)文件描述符对于内核而言,所有打开的文件都通过文件描述符当打开现有文件或者创建新文件的时候,内核向进程返回一个文件描述符当读、写一个文件的时候,使用open或者creat返回的文件描述符作为参数传给read或者write
2021-05-16 13:37:27 165
原创 apue(《UNIX环境高级编程》)笔记
前言:最近开始读aupe这本业内评价很不错的书。看了很多人的评论,总的来说如果要学好这本书的内容读一遍是远远不够的,同时还要把书中实现的源码全部手动的过一遍。最后找一个项目,边看源码边翻书的去读,这样才能学有所成。目前我还是读一遍的程度,因此体会不到书中高深莫测的学识,学海无涯苦作舟,一步一步来吧!本章节是总目录,各个目录分别在不同的文章中,一共有17个章节:APUE...
2021-05-16 12:48:42 400
原创 LeetCode相关典型题解合集——动态规划
所有的题型目录在下面的链接LeetCode相关典型题解合集(两百多道题)手把手教你做动态规划系列动态规划斐波那契数列1. 爬楼梯2. 强盗抢劫3. 强盗在环形街区抢劫4. 信件错排5. 母牛生产矩阵路径1. 矩阵的最小路径和2. 矩阵的总路径数数组区间1. 数组区间和2. 数组中等差递增子区间的个数分割整数1. 分割整数的最大乘积2. 按平方数来分割整数3. 分割整数构成字母字符串最长递增子序列1. 最长递增子序列2. 一组整数对能够构成的最长链3. 最长摆动子序列最长公共子序列1. 最长公共子序
2021-04-18 15:01:59 1201
原创 LeetCode相关典型题解合集——贪心法
所有的题型目录在下面的链接LeetCode相关典型题解合集(两百多道题)贪心法455. Assign Cookies (Easy)121. Best Time to Buy and Sell Stock (Easy)605. Can Place Flowers (Easy)455. Assign Cookies (Easy)对孩子的胃口g和饼干的大小s进行排序,然后比较就行int findContentChildren(vector<int>& g, vector<
2021-04-01 18:53:28 396
原创 论文总结:Cryptϵ: Crypto-Assisted Differential Privacy on Untrusted Servers
这是一篇发表在SIFMOD-A类上的一篇关于差分隐私的论文论文链接目录摘要INTRODUCTION摘要这篇文章提出了一个叫做Cryptϵ的系统和框架,主要做了如下的两件事情achieves the accuracy guarantees and algorithmic expressibility of the central model实现中心模型的精度保证和算法可表达性without any trusted data collector like in the local model.
2021-03-31 11:52:21 406
原创 知识点10:c++中的移位运算,左移和右移
之前写一道二分查找的题目是,有一个问题一直过不去,问题是这样的:假设left=0,right=2计算mid=left+((right-left)>>2)正常情况下mid=1,但是上述式子mid=0移位运算包含“逻辑移位”(logical shift)和“算术移位”(arithmetic shift)逻辑移位: 移出去的位丢弃,空缺位(vacant bit)用 0 填充算术移位: 移出去的位丢弃,空缺位(vacant bit)用“符号位”来填充,一般用在右移运算中无符号数,不
2021-03-30 17:12:56 950
原创 多方安全计算(MPC)知识汇总
MPC的数学模型MPC的问题分类由算法适用性来看,MPC既适用于特定的算法,如加法、乘法、AES,集合交集等;也适用于所有可表示成计算过程的通用算法。根据计算参与方个数不同,可分为只有两个参与方的2PC和多个参与方(≥3)的通用MPC。安全两方计算所使用的协议为Garbled Circuit(GC)+Oblivious Transfer(OT);而安全多方计算所使用的协议为同态加密+秘密分享+OT在安全多方计算中,安全挑战模型包括半诚实敌手模型和恶意敌手模型。市场大部分场景满足半诚实敌手模型。
2021-03-23 19:57:08 2265
原创 论文总结:Efficient Publicly Verifiable 2PC over a Blockchain with Applications to Financially-Secure....
这篇论文主要做了以下几件事儿:present a new efficient two-party secure computation protocolwhich allows the honest party to catch dishonest behavior (if any)with a publicly-verifiable, non-repudiable proof without sacrificingthe honest party’s secretComparing to th
2021-03-17 20:01:50 549
原创 论文总结:差分隐私研究综述,a survey
原文链接介绍This survey provides a comprehensive and structured overview of two research directions: differentially private data publishing and differentially private data analysis这篇文章是IEEE的调查文章,也算是综述文章他将DP分成了两个研究方向:DP数据发布和DP数据分析Data publishing aims to
2021-03-04 11:05:02 2341 1
原创 差分隐私相关论文集合
1、基于梯度的联邦学习方法,往往通过在每次迭代中随机地扰动中间输出来应用差分隐私(也就是说在联邦学习的过程不会暴露是否使用某个特定的样本信息)① DWORK C, ROTH A. The algorithmic foundations of differential privacy[J]. Foundations & Trends® in Databases, 2014, 9(3-4): 211-407.② BASSILY R, SMITH A, THAKURTA A. Private em
2021-03-02 10:30:44 2358 3
原创 LeetCode相关典型题解合集——链表
所有的题型目录在下面的链接LeetCode相关典型题解合集(两百多道题)链表前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言链表是空节点,或者有一个值和一个指向下一个链表的指针,因此很多链表问题可以用递归来处理。链表的表头不存放数据,只是起到一个桥梁的作用提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):impo
2021-02-28 20:33:53 314 3
原创 差分隐私的概念综述
这里放一篇详细介绍DP前世今生的论文,感兴趣可以看一下,点击蓝字即可1、什么是隐私?讲差分隐私前,我想说一下什么是隐私其实隐私这个定义,各家有各家的说法,而且各人有各人不同的考量。目前普遍比较接受的是:“单个用户的某一些属性” 可以被看做是隐私。这个说法里所强调的是:单个用户。也就是说,如果是一群用户的某一些属性,那么可以不看做隐私。举个例子:医院说,抽烟的人有更高的几率会得肺癌。这个不泄露任何隐私。但是如果医院说,张三因为抽烟,所以有了肺癌。那么这个就是隐私泄露了。好,那么进一步,虽然医院发布的是
2021-02-27 13:08:10 6471 2
原创 机器学习-联邦学习安全方面的论文汇总
1、最先由谷歌提出联邦学习的概念KONEČNÝ J, MCMAHAN H B, RAMAGE D, et al. Federated optimization: distributed machine learning for on-device intelligence[J]. arXiv preprint, 20162、一种通过小部分原始的梯度信息,反推出原始数据信息的隐私泄露方法PHONG L T, AONO Y, HAYASHI T, et al. Privacy-preserving
2021-02-26 16:22:15 3127
原创 leetcode相关典型题解合计——图
图前言一、二分图1.1、判断是否为二分图二、拓扑排序三、并查集总结前言图的知识点有很多,刚开始有图的存储结构,图的DFS和图的BFS遍历,最小生成树(prime算法和克鲁斯卡尔算法),有向无环图的应用,拓扑排序,关键路径和最短路径(迪杰斯特拉算法和弗洛伊德算法)。上面这些关于这些图的知识点在别的题目里面也会涉及到,因此没有列举完全。这里只列举少部分跟图有关的,后序如果遇到相关的题我会再补充。提示:以下是本篇文章正文内容,下面案例可供参考一、二分图1.1、判断是否为二分图二、拓扑排序
2021-01-12 21:54:01 285
原创 知识点9:if(x==nullptr)和if(x)的区别
if和while都是判断形语句,因此当括号中为0,则表示false不执行。括号中为1则表示true,执行例如:if(root != nullptr)和if(root)一个意思 if(root==nullptr)和if(!root)一个意思真-true-非0假-false-0
2021-01-05 20:35:42 1503 2
原创 LeetCode相关典型题解合集(两百多道题)
文章目录前言一、数据结构1.1、数组与矩阵1.2、链表1.3、栈和队列1.4、树1.4.1、递归104. 二叉树的最大深度110.平衡二叉树543.二叉树的直径226.翻转二叉树617.合并二叉树112. 路径总和(判断路径和是否等于一个数)437. 统计路径和等于一个数的路径数量572. 另一个数的子树101.树的对称1.4.2、层序遍历1.4.3、前中后序遍历(非递归)1.4.4、BST(二叉搜索树)1.4.5、trie(前缀树或字典树)1.5、图1.6、字符串1.7、哈希表1.8、位运算二、算法思想.
2021-01-04 20:17:02 494 1
原创 联邦学习综述总结
联邦学习综述总结提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录联邦学习综述总结一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn a
2020-12-25 16:42:05 4954 1
原创 知识点8:二叉树根据节点的val值返回对应的节点
递归和非递归的方式我都试过了,发现递归的方式比较难实现而且麻烦,因此用非递归(栈)结构的方法给出BTree* return_by_val(int val,BTree *root) { stack<BTree*> s; BTree* cur = root; while (cur!=nullptr||!s.empty()) { while (cur!=nullptr) { s.push(cur); cur = cur->left; } if (cur==nu
2020-12-22 20:32:21 924
原创 知识点6:二叉搜索树BST的删除
二叉排序树的性质根节点的左孩子都比根节点要小,根节点的右孩子都比根节点要大这个性质随着二叉树一次递归下去,每一个子树都满足这个性质BST树的结构如下:(1)所有左子树中的节点小于等于根节点(2)所有右子树中的节点大于等于根节点(3)对于任意节点满足(1)(2)删除BST的删除难点在于删除节点后,剩下的树要维持BST的性质因此,删除BST的某个节点要根据节点的情况分为以下三种一、删除节点为叶子节点例如删除上述的13、22、19、42节点这些节点为叶子节点,删除这些节点不会影响到BST
2020-12-22 19:22:47 725
原创 知识点5:为什么知道先序和后序不等重建二叉树
我们无法根据树的先序遍历和树的后序遍历得到二叉树的结构,或者说结构是不确定的单向陷门函数思想hash函数的功能就是将某个大集合映射到小集合中,例如布隆过滤器或者布谷鸟过滤器。或者我们的一些密码的存储,并不是在数据库中直接放入我们的密码,这样如果数据库被盗或者丢失会造成很严重的损失。那么数据库上存储的密码实际上是我们密码的hash映射或某种加密下的密文。既然是单向的就说明我们无法从以映射的集合得到原集合。同时这种压缩是有损的。因此一棵树也可以看做是一个哈希映射。我们将含有n个节点的二叉树映射成为串长为
2020-12-08 19:38:25 686
原创 LeetCode337-树-打家劫舍 III
递归求解本质上就是间隔遍历把问题直接简化成两个部分:①偷父节点。那就是隔行遍历左右节点,因为不能偷连续的节点。但是注意,隔行遍历一定要判断有无空指针!②不偷父节点。可以画几个示意图看看,不偷父节点的话就是父节点的左子树+右子树的值,依次加下去最后返回一个最大的金额class Solution {public: //本质上就是间隔遍历 //把问题直接简化成两个部分:①偷父节点②不偷父节点 int rob(TreeNode* root) { if(roo
2020-11-19 19:41:16 125
原创 LeetCode687-树-最长同值路径
尝试用递归,dfs,bfs改进,同时算法也有需要改进的地方class Solution {public: //递归的写法 //思路如下:①用两个变量表示左右节点相同的边的个数。例如node和node->left相同,则left+1 //②最大值就是比较两个相加和最大值之间的关系,为什么相加自己想一下 //③返回值也很重要,把最大的那个留着,小的肯定没用了 int intLeft=0; int intRi
2020-11-18 20:01:18 77
原创 知识点4:bool值的一些理解
1.布尔值的0代表false非零整数(不论正负)代表true2若有一个指针p为nullptr或者NULL则p的布尔值为0,则!p为1,为truep==nullptr和!p是等价的表达
2020-11-02 13:48:53 796
原创 知识点2:多项式时间
时间复杂度通俗的理解:时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。也就是说,对于高速处理数据的计算机来说,处理某一个特定数据的效率不能衡量一个程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。不管数据有多大,程序处理花的时间始终是那么多的,我们就说这个程序很好,具有O(1)的时间复杂度,也称常数级复杂度;数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是O
2020-10-28 09:29:54 1390
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人