M1mac使用utm虚拟机最小化安装x86_64archlinux
写在前面
最近看操作系统的课程, 需要用到gnu的代码调试工具gdb, 但是在arm的Mac中并不能安装(只能安装x86_64架构的)
❯ brew install gdb
gdb: The x86_64 architecture is required for this software.
Error: gdb: An unsatisfied requirement failed this build.
正好前几天看到有人用UTM在m1mac上成功安装了Win10(amd64), 我也尝试着安装来着, 但是Win10资源占用太大了, 8GB内存实在吃不消, 特别烫然后还很多bug, 后来我想索性试试Linux, 直接安装命令行界面并通过物理机ssh到虚...
C++设计模式 类图的绘制(mermaid Js)
写在前面
classDiagram
Class01 <|-- AveryLongClass : Cool
<<interface>> Class01
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
class Class10 {
>>...
Leetcode233数字1的个数 容易理解的组合数学方法
题目
给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。
示例 1:
输入:n = 13
输出:6
示例 2:
输入:n = 0
输出:0
提示:
0 <= n <= 1e9
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/number-of-digit-one
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
这里面的例子有问题, 说是 0~10^9, 结果早就超出 1e9 了…
首先来看这样一个例子:13, 怎样来计算数字 1 的个数呢?
一个比较直观的思路就是先计算1~10中数字 1 的个数, 然后计算11~13中数字 1 的个数.
显...
使用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()函数的身上, 找出源码后发现其本质还是逐元素比较...
共计 455 篇文章,57 页。
您是Zorch的第 个小伙伴
Hits