More than code

daily
daily

Daily C/C++ 随机数生成

Daily C/C++ 随机数生成 今天这篇文章主要讲一下新版本中C++的随机数生成 那具体有关理论部分这里就不细说了,主要说平常我们怎么用 参考文章自然就是cppreference了,大家可以自行查阅,在cppreference中搜random就行 那么可以看到,C++中的随机数库提供了两种东西,分别为均匀随机位生成器和随机数分布 那么随机位生成器就是用来生成一个随机数的,而随机数分布则是用给定的生成器生成对应的分布 根据介绍我们可以发现,随机位生成器是函数对象,那么也就是说我们用的是其作为函数的性质,即关注op…

2021年8月30日 0条评论 523点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 新版本C++中的易用性改进(2)

Daily C/C++ 新版本C++中的易用性改进 参考文章 自定义字面量,这个平常用的相对较少,这里就简单提一嘴 我们可以自己定义字面量,只需要我们重载operator""即可 这里举个例子 length operator"" _m(long double v) { return length(v, length::metre); } length operator"" _cm(long double v) { return length(v, length::centimetre); } 自定义字面量的要求就是…

2021年8月29日 0条评论 501点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 迭代器

Daily C/C++ 迭代器 迭代器相信平常用stl稍微多一点的同学肯定都很熟悉了,这篇文章就是介绍一下基本的迭代器的概念,帮助理解还不是那么清晰的同学理解一下迭代器的概念 参考文章 如果是从C转过来学习C++的同学可能会发现,迭代器就很像是指针一样。是的,迭代器就是在容器中对指针抽象的结果,所以迭代器可以看作是C++的指针,但是对于内存不连续的容器来说,迭代器其实是拓宽了原本指针的功能 那么首先明确,迭代器实际上是一个规范,即如果一个类型满足了如下几个条件,就可以被看作是一个迭代器 1.对象可以被拷贝构造,拷贝…

2021年8月27日 0条评论 557点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 要用异常吗?

Daily C/C++ 要用异常吗? 首先说一下我个人的观点,我觉得是要用的,否则C++标准也就会抛弃掉这项特性了 C++标准容器库里面都会使用异常,我们平常使用的new也会抛出异常,所以我觉得我们要用,但是要用好异常,还要对异常有充足的了解 我感觉利用各种错误码来处理错误情况的缺点就是视觉效果很差,我们代码东一个判断,西一个判断,很容易就让人看的眼花缭乱 C++为我们封装好了很多要主动处理错误的情况,比如动态内存分配空间不够 同样的,C++的RAII特性也帮助我们可以更好的管理资源,当抛出异常的时候,我们如果在上…

2021年8月26日 0条评论 516点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 函数对象与容器

Daily C/C++ 函数对象与容器 今天来讲两个比较重要的函数对象less和hash 首先对于函数对象,理解成重载了operator()的一个类型即可 对于less,就是一个二元函数对象,用来执行任意类型元素值的比较,并且缺省行为是进行小于的比较操作 在cppreference中,有提到在特化为指针类型时候要满足全序关系,这个大家可以去自己查看 从C++14起,默认的特化类型就是void 可能的实现如下 constexpr bool operator()(const T &lhs, const T &a…

2021年8月25日 0条评论 523点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ skyline problem

skyline problem 今天leetcode的每日一题,感觉是一道很不错的题,所以拿出来分享一下 题目链接 还有一篇讲的不错的文章 链接 这种问题的解法总是一步一步迭代出来的,这里我打算讲一种思路,三个实现方法 首先我们可以考虑一种很暴力的解法,就是从左到右枚举每一个横坐标(注意是离散化后的),然后枚举每一个矩形,判断能够包含这个横坐标的最大的矩形高度是多少,这样我们就可以确定这个关键点的纵坐标了 可以想到,我们枚举横坐标是一个必须的过程,因为我们最终要求出所有的关键点。但是我们不必每次都枚举所有的矩形,只…

2021年7月13日 0条评论 551点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ pop的返回类型

pop的返回类型 这里说的是C++标准库中的stack和queue容器的pop成员函数 我们在平常的使用过程中就可以知道,这两个容器(或者叫容器适配器)的pop函数的返回值都是void,但是为什么标准库要这么设计这个接口呢? 或者问,为什么返回值不设置成容器中元素的类型呢? 对于多线程的情况,如果我们想取出pop的元素,就需要执行 stack.top 和 stack.pop 两步 如果我们的pop可以直接返回对应的元素,就不用担心我们的操作会被其他的线程干扰,因为我们的操作具有原子性 举个例子,假设我们有两个线程,…

2021年7月11日 0条评论 543点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 三分法

三分法 三分法其实是比较常见的一个方法了,也是比较基础的一个算法 和我们常听到的二分法不同,二分法是在满足单调性的区间上去查找值,而三分法是用来求解单峰函数的极值的 正好今天的leetcode每日一题是一个求解单峰极值的问题,这里我们就用三分法来解决他 题目链接 就像是他的名字一样,三分法要求我们将区间分成三段,也就是找到两个端点 这里我们看对于一个单峰图像进行三分的结果 比较简陋,两边的红线就是我们的两个端点,中间的两个红线就是我们三分出来的端点 我们可以通过很简单的mid1 = left + (right - …

2021年6月15日 0条评论 669点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 算法小技巧-动态规划

算法小技巧-动态规划 这篇文章灵感来源于今天的leetcode的每日一题 题 其实就是很明显的多维的背包问题,但是题目问的是不少于minProfit的种类数 最开始我定义的转移方程是dp[i][j]表示i个人挣j的钱,然后最后再统计大于minProfit的方案数 但是超时了,看了题解后发现,应该定义dp[i][j]为i个人挣至少j的钱 那么这样我们最大k的枚举范围也才到minProfit,不需要枚举总共的sum 所以最终的答案就是dp[n][minProfit] 这里还有个小细节,就是如果最开始初始化只是dp[0]…

2021年6月9日 0条评论 554点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 右值引用

右值引用 还是谈一谈我对右值引用的理解 有关右值引用的讲解网上有很多,这里就不在一一罗列了 右值引用,毫无疑问是用来解决冗余拷贝的问题的。 比如在拷贝构造函数里实现了深拷贝,那么在某些情况下我们就有可能重复的进行大量资源的拷贝,造成资源的浪费 C++的编译器有对这方面的优化,叫做RVO(return value optimization) 我们在函数返回的时候,不进行一次次的拷贝构造,而是直接将对象构造在他应该放的地方,从而省略了中途冗余的拷贝 但是这毕竟只是编译器做的优化,不能完全帮助我们优化性能,所以有的时候这…

2021年6月8日 0条评论 502点热度 0人点赞 sheep 阅读全文
12345
分类
  • ARTS
  • C++
  • CSAPP
  • daily
  • database
  • leetcode
  • linux
  • ml
  • nlp
  • paper
  • rocksdb
  • rust
  • ScummVM
  • tech
  • 其他
  • 周报
  • 未分类
  • 笔记
  • 算法
  • 计算机图形学
归档
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 7 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 4 月
  • 2023 年 2 月
  • 2023 年 1 月
  • 2022 年 9 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 9 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 1 月
  • 2020 年 12 月

COPYRIGHT © 2021 heavensheep.xyz. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS