Fltk的ui设计工具fluid使用方法总结
写在前面
终于又捡起来FLTK了, 先来看看怎么通过FLUID创建一个图形界面并完成回调函数的创建, 参考的是官方教程中关于创建一个CubeView程序的例子, 教程里面很多都与最新版本的FLTK界面不太一致, 但是通过我的摸索还是找出了方法. 下面来分享一下.
创建类
直接点New新建各种类型即可, 一些注意事项在官方文档中给出了, 一些类或者组件的名称都用粗体标出来了(如下图), 需要对应, 不然后面回调函数连接不上.
在CubeViewUI类中主要实现了构造函数以及一个show方法, 用于显示窗体.
最后的结果如下, 这里其实主要是要看清楚是水平组件还是垂直组件, 这个很重要, 其次就是主窗体的大小, 配比要合适.
回调函数
其实就是两行, 主要用于五个主要...
长除法计算平方根的方法总结与代码实现(c++,python)
写在前面
之前总结了计算平方根的方法, 但是并没有给出手算方法的解释, 这次专门写一下手算方法.
据说这个方法是中国的数学家创造的, 我也没深入考证过, 总之就是非常经典了, 因为这个长除法算法(英文:Long Division Algorithm)可以计算任意精度的平方根, 也就是可以算小数点后的任意位, 下面来看看具体的方法与原理.
原理解释
代数
其实原理是基于这样一个式子:
\(x^2=(10a+b)^2\iff x^2-100a^2=(20a+b)b.\tag{*}\)
就是说对于一个两位数$x$, 其平方(设其有4位)有这样的一种表示, 那么如果要计算某一个数$y=x^2$的平方根, 只需要通过长除法, 根据数的前面两位和后面两位迭代计算即可.
当然这样直接说显...
计算平方根的一些方法总结
写在前面
重新熟悉下计算平方根的算法, 当然对于力扣的平方根69. x 的平方根 - 力扣(LeetCode), 已经出现了不下五种的方法了, 这次简要总结下. 代码均为C++.
调包
return (int) sqrt(x);
return (int) pow(x, .5);
高级调包
应用了
\(\sqrt x=\exp(\frac{\ln x}2)\)
这一关系, 需要注意浮点数舍入误差.
int mySqrt(int x) {
if (x == 0) {
return 0;
}
int ans = exp(0.5 * log(x));
return ((long long)(ans + 1) * (ans + 1) ...
C++之什么时候应该使用typename或class
写在前面
对于C++模版元编程, 使用关键字typename还是class显然是不重要的, 除了在模版模版参数中使用类类型一定要用class声明类外, 例如下面这个例子, 为容器给出泛型函数, 虽然这样事实上只针对序列式容器:
template <typename T, template <typename> class Container>
ostream &operator<<(ostream &os, Container<T> v) {
for (auto i : v) os << i << " ";
return os << endl;
}
在模版中, 一...
通过公网ip访问云服务器mysql的方法
方法
环境:
Ubuntu20.04(x86_64)
MySQL8.0.31
开端口
addtcp 3306
reufw
并且在阿里云的管理界面开3306端口.
改配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
其中bind-address改为:(要不然只能在本地访问)
bind-address = 0.0.0.0
添加数据库配置
# 进入数据库
# mysql -uroot -p
# 输入
CREATE USER 'root'@'%' IDENTIFIED BY '<数据库密码>';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'...
Macos下asciiquarium出现.cursesboot.c: loadable library and perl binaries are mismatched (got handshake key 0xfc00080, needed 0xc700080)的问题解决
问题
m1Mac brew
一个终端养鱼程序(Perl):ASCIIQuarium, https://github.com/cmatsuoka/asciiquarium;
在使用brew安装之后报错了:
./CursesBoot.c: loadable library and perl binaries are mismatched (got handshake key 0xfc00080, needed 0xc700080)
然后网上找一圈也没有解决方案, 后来发现重新从源构建就好了:
brew reinstall asciiquarium --build-from-source
完美:
寻找缺失数字,出现次数不同数字的题目总结
写在前面
近期看面经, 发现有一类题常出现, 那就是寻找缺失数字, 基于这道题的变式题目也很多, 下面来总结一下.
下面总结的是缺失数字以及出现次数不同于其他数字的两大类题目.
主要用到的知识点:
哈希集合: 需要占用空间, 可以考虑原地哈希, 但是不好想.
排序+二分: 排序操作时间复杂度高.
位运算: 这里主要指异或运算.
数学方法: 找关系联立方程组, 通过求和等方式完成.
特殊解法:(只能针对某道题)
缺失数字类
关于缺失数字, 有下面这几类题型:
已排序, 找0~n-1中缺失的数字.剑指 Offer 53 - II. 0~n-1中缺失的数字 - 力扣(LeetCode).
已排序, 找缺失的第$k$个数字.1539. 第 k 个...
C++unordered_map插入元素的小坑与map添加更新元素的性能比较
坑
来看这样一个例子:
#include <iostream>
#include <unordered_map>
using namespace std;
void t1() {
unordered_map<int, int> m1{};
for (auto &i : {1, 2, 3, 1}) m1[i]++;
cout << "m1[4]=" << m1[4] << endl;
cout << "m1.count(4)=" << m1.count(4) << endl;
for (auto &[k, v] : m1...
共计 465 篇文章,59 页。
您是Zorch的第 个小伙伴
Hits