主页

使用mac的applescript定制sublime执行c程序弹出终端

写在前面 最近又开始折腾编辑器了, 当然还是一个历史遗留问题, 我最爱的Sublime还是不能通过终端执行C/C++程序, 或者就是执行完之后直接退出了, 绕了一圈, 从每一个程序中加上system(read);算是一个折中的方案, 但是终归有点麻烦, 采用AppleScript(命令行中使用osascript -e)的方法当然可以, 但是我找了半天也没一个能跑明白… 只能说自己功力不够 针对Terminal 下面倒是一个可以通过applescript跑起来的例子, 就是对iTerm不行, 只能对系统默认的终端(Terminal.app)来操作.. 还是有点鸡肋的. 这个命令我参考了1, 并做了一些改动. # double `-e` osascript -e 'tell app...

阅读更多

C++字符串字面量""s的使用方法

写在前面 前几天看lc题解看到一个C++写法:""s, 感觉之前没见过, 后来查看一番cppreference1之后发现这个语法竟然是一个C++14时候出现的字符串字面量定义的简洁语法, 下面来具体看看: 代码 #include <string> #include <iostream> // must with stdc++14 void print_with_zeros(const std::string note, std::string const& s) { std::cout << note; for (const char c : s) { (c ? std::cout << c ...

阅读更多

C++中vector使用c字符时的小坑与分析

问题与解决 最近看看C++11标准, 准备用用新的range-based for语法, 但是一个例子让我有点困惑, 就是下面这段代码: #include <bits/stdc++.h> using namespace std; void t1() { vector<string> vs{'a', "abc"}; for (int i = 0; i < vs.size(); i++) { cout << vs[i] << " "; } cout << endl; } int main(int argc, char const *argv[]) { t1(); ...

阅读更多

用opengl绘制winxp版扫雷的墨镜笑脸

写在前面 最近看看OpenGL的东西, 学了一些基础的语法, 所以用来做点东西, 用基本的点线多边形等来绘制一个Windows XP中经典的游戏扫雷里面的标志性笑脸, 如下图: 思路 这个笑脸有四种形态,分别是初始状态的笑脸, 点击时候的o型嘴, 赢的时候的墨镜脸和输了时候的伤心脸, 下面通过简单的直线和圆来绘制, 都是简单图形, 本质上其实都是点的绘制, 这里我封装了一下函数, 调用会方便一些, 分别是通过vector<GLint>表示的点, 这样用initializer_list时候会方便很多. 其次就是一些小细节, 例如圆的绘制中的角度问题(这里就是嘴的绘制), 还有键鼠事件的交互, 我觉得熟悉了这个流程之后, 主要的思路就都放在点的坐标上了, 这里我建议...

阅读更多

C++字符串大小比较的踩坑

坑 最近学习C++11中的initializer_list这一新特性, 一个实例是关于字符串比较大小的, 代码如下: cout << max({string("Fff"), string("Eoa"), string("Acc")}) << endl; 运行结果如下: Fff 很显然最大值就是字符串"Fff"(依字典序), 但是我觉得string这个关键字可以去掉, 也就是将上述代码改为: cout << max({"Fff", "Eoa", "Acc"}) << endl; 但是这时候结果就变成了: Acc 这是为什么呢? 分析 一开始我以为问题出在max()函数的身上, 找出源码后发现其本质还是逐元素比较...

阅读更多

关于二叉树插入空节点占位的问题

写在前面 今天刷lc的每日一题, 碰到了关于二叉树的题目, 本来是简单层序遍历(BFS)出结果的, 但是我在本地测试的时候总是出问题, 层序遍历出来的结果竟然跟测试样例的二叉树长得不一样了! 看下面这个例子: 1 \ 2 \ 3 / \ 4 5 上面这颗树的层序遍历应该是:[1,None,2,None,3,4,5], 但是我的测试代码却得到了: 第1层元素: [1] 第2层元素: [None, 2] 第3层元素: [None, 3, 4, 5] 就是说直接忽略了空节点, 这可是大大影响了树的结构了.. 下面尝试解决这个问题. 代码(Python) # 首先定义树的...

阅读更多

组合学笔记(七)möbius函数的计算

写在前面 这次总结一下计算 Möbius 函数的一些内容, 包括一些例子, 具体地给出 Möbius 函数的一些用途. 一个平凡的例子: 微积分基本定理的有限差分模拟 设$P=\mathbb N$,(chain, 链) 则由 Möbius 函数的归纳定义, 代入计算, \[\begin{cases} \mu(x,x)=1,\quad\forall x\in P, \\[5pt] \mu(x,y)=-\sum_\limits{x\le z<y}\mu(x,z),\ \forall x<y\in P, \end{cases}\tag1\] 可以得到:$\forall i,j\in P$, \[\mu(i,j)=\begin{cases} 1,&i=j,\\ ...

阅读更多

Mac m1使用sublime格式化python,c++,json的最佳方式

写在前面 越来越离不开Sublime Text(下称ST) 这款轻量级跨平台编辑器了, 满足我对轻量化编辑代码的所有要求, 并不像VSCode一样臃肿, 内存占用也不大, 但是有一点不太好的就是现在插件市场的插件很多都不维护了, 就导致现在大多数开发者都转向vscode阵营了(我不想做大多数). 我可是放不下这款超级棒的编辑器的, 不管是刷LeetCode还是写小的测试程序, 都让我觉得非常舒服. 但是最近遇到了一个问题, 就是在ST中写C++时候代码格式化总是不好用, 一开始我用的是一款叫做CoolFormat的插件, 但是遇到C++代码总是提示Cannot format this file, 网上找到的推荐插件是SublimeAStyleFormatter1, 据说用来格式化C...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits