duangsuse::Echo
这程序等价么 #CXX
我始终搞不明白
1. 为什么有些程序要使用这么复杂的控制结构和不明所以的算术,如果只是比较
2. 为什么有些部分写得和一些 Perl 脚本一样,完全没有 C++ 的感觉,甚至冗余一大片
3. 提升建议:可以使用函数式编程
1. 为什么有些程序要使用这么复杂的控制结构和不明所以的算术,如果只是比较
(size <= actualsize) 为什么写成 (actualsize + 1 > size), 而且还 do while 重复两遍,还在 if 里面重复,用 while 不就可以了?或者也可以 continue; break; 啊?2. 为什么有些部分写得和一些 Perl 脚本一样,完全没有 C++ 的感觉,甚至冗余一大片
3. 提升建议:可以使用函数式编程
std::function 抽提一些难以抽提的逻辑,比如 stol, stoul 都可以被填成一个模板,FindNode 也可以弄 FindSclarChild, FindMapChild
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 测试环境,不能编译测试我心虚
同时,我这里也没有 VC++ 的 SDK 和 Windows 测试环境,不能编译测试我心虚
duangsuse::Echo
很辣鸡,可是我果然还是变得 很慢了吧...
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 的递归子程序,一点计算都没有,真垃圾啊....
看懂了,就是 C++ 的 iterator 和递归函数
真的想打印下来好好看...
突然懂了,其实就是不断递交给父层取 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