duangsuse::Echo
717 subscribers
4.26K photos
130 videos
583 files
6.48K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
考虑到 GSOFont 配置的结构体和普通 replace 的不一样,就算了,可是如此之长的配置加载... 这些代码重复多一遍都是很淡疼的,何况扫描键值的部分别无二致,只是后期操作有变化,就不能使用 Lambda 抽提吗?
还有个简单一点的习惯问题,就是这么多 if 嵌套看的时候是要死人的啊!(何况我一看,这些 if 除了条件执行外没有任何的 else...) 利用控制流预先 return / continue / break 了更好
duangsuse::Echo
还有个简单一点的习惯问题,就是这么多 if 嵌套看的时候是要死人的啊!(何况我一看,这些 if 除了条件执行外没有任何的 else...) 利用控制流预先 return / continue / break 了更好
此外,用 for (const auto& node : childs) 不是更有意义一些,为什么到处用 i j ret tmp 这些毫无意义的名字啊... i 在是数值的时候还是可以用的,YAML::Node i; 这是不是混淆了...
This media is not supported in your browser
VIEW IN TELEGRAM
我不能继续下去了,虽然可能有意义... 一些建议我发给 YSC 算
同时,我这里也没有 VC++ 的 SDK 和 Windows 测试环境,不能编译测试我心虚
duangsuse::Echo
很辣鸡,可是我果然还是变得 很慢了吧...
没办法,毕竟看代码少了
还是停止『好好学习』算了 😓

我看这样下去,最终才是搬砖的下场
一些书还是得继续看下去 #school #life

如此学习科学文化知识... 才叫不学习,以后成为废柴的话
为什么一定要学习『科学文化知识』呢。
duangsuse::Echo
这程序等价么 #CXX
b+1 > a
(a,b in N) => b >= a
是这么考虑的:
+ 若 b-a = 1 (b = a+1; b+1>a)
+ 若 b-a = 0(b=a; b+1 > a)
+ 若 b-a = 2 (b = a+2; b > a)
+ b-a = -1 (b < a; b+1 = a; b+1 = a) 🤔???
Forwarded from dnaugsuz
可以 type safe 的,指针损失了长度信息,类似 void* vs. std::array
Forwarded from dnaugsuz
现在看了也头疼,尤其是那个也是曾经我自己写的 get_char(usize idx)... 算了
真的想打印下来好好看...
突然懂了,其实就是不断递交给父层取 item 的递归子程序,一点计算都没有,真垃圾啊....
if (idx >= this->size()) return '\00'; 这条语句不 sound,明明知道是超出索引(甚至 i > len+1)还给 '\00'....
看懂了,就是 C++ 的 iterator 和递归函数

void copy_to_recurse(char *&beg/*mut*/, char *end) {
if (this.head !=nullptr) this.head.copy_to_recurse(stm);
usize sziter = end - beg;
usize szcopy = min(len, sziter); // intersection
memcpy(beg, this.str, szcopy);
beg += szcopy;
}
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from 羽毛的小白板
qnmd Electron 和 Chromium。退出 Slack 后系统内存占用立马减少 7GB
隔壁的 4GB 看着你
emmm... 这么写....
Forwarded from dnaugsuz
补充一下,对于这种头疼的情况 也有部分程序员这么写:

auto a = malloc(1);
if (a ISNULL) { goto exit; }
else {
auto b = malloc(2);
if (b ISNULL) { goto free_a; }
else {
///...
goto free_b
}
}
free_b: free(b)
free_a: free(a)
exit: return;

程序的控制结构本身是很灵活的,可以推导出许多不同情况
#CXX #Learn 学到了,RAII 居然是完全自律的,我以为只是 lazy 呢
Forwarded from dnaugsuz
🤔 RAII (Resource Accquiring Is Initialization) 不是资源惰性加载嘛... 它还能自动提供 finializer?
duangsuse::Echo
这程序等价么 #CXX
感谢 Yuuta 群友 @ysc3989 回答:不等价
我误解了,这个 string 是动态增长的,str.data() 是 iterator begin...
修正:
1. 把 pathsize, actualsize 提升到 for 的前面
2. 在 for 里面重复两遍... 当然也可以用 do while + break
这个是真没办法,不过可以用预处理宏或者 lambda

如果不用某些函数式的 operator 的话真的很麻烦啊... while 的话初始化要重复、do while 的话 predicate 要重复、用 goto 现在又不推荐使用