C printf可变参数的实现原理

可变参数原理由于函数参数是存放在栈中的,而且是从左到右依次入栈(参数的地址从左到右依次增大),从右到左依次初始化,所以,函数的参数位置是确定的,一旦我们知道了某一个参数的地址我们就可以获得所有参数的地址。printf实现void MyPrint(const char* format, ...){va


C++17 filesystem

filesystem简介filesystem是c17新增的特性,可以很方便的对路径进行操作,遍历以及文件信息获取。注:vs在vs2017后开始对c17支持,vs2015及之前的版本不支持C++17头文件:#include <filesystem>using namespace std::


差分数组

简介今天在做leetcode每日一题的时候,又学到了一个特殊的数组《差分数组》,链接


STL 优先队列priority_queue

优先队列priority_queue描述参考文章使用priority_queue需要包含的头文件是#include,不同于queue的先进先出,priority_queue可以自定义数据的优先级,让优先级高的数据位于队首。定义:priority_queue<Type, Container, F


C++Leetcode--881. 救生艇

题目描述官方描述(中文)2021/08/26每日一题思路排序+双指针原则优先让剩下的最轻和最重的同学组队,如果最轻的都不能和最重的组队,那最重的只能自己乘船。先把数组由大到小进行排序。定义两个指针i,j。分别指向队首和队尾。v[i]+v[j]有两种情况v[i]+v[j]<=limit.nice


C++Leetcode--797. 所有可能的路径

所有可能的路径题目描述官方描述(中文)2021/08/25每日一题。代码菜鸡如我,只会无脑深搜。。。class Solution {public: void Dfs(vector<vector<int>>& graph, vector<vector<


使用vcpkg 编译支持sftp的libcurl

[TOC](使用vcpkg 编译支持sftp的libcurl)libcurl的编译下载vcpkg使用git将vcpkg从github上clone下来:github地址git clone https://github.com/microsoft/vcpkg编译vcpkg使用cmd进入vcpkg所在目录


lambda表达式相关

[TOC](# lambda表达式)学习 Effective Modern C++ 第6章 笔记避免lambda表达式的默认捕获模式C++11有两种默认捕获模式:按引用与按值。按引用捕获的危险情况std::function 头文件 #include < functional >using


C++Leetcode--31. 下一个排列

(31. 下一个排列)中文版本链接link思路:1.首先从右向左遍历列表,找到第一个下降的点即nums[i] < nums[i+1],这个i就是需要替换的位置。2.将i之后的点即[i+1, nums.size()-1]这个区间里的数倒序排列3.在[i+1, nums.size()-1]这个区间