ReactiveCocoa初探

更多图片等细节见GitHubReactiveCocoaIntroductionAs an iOS developer, nearly every line of code you write is in reaction to some event; a button tap, a received network message, a property change (via Key Value Observing) or a change in user’s location via Cor.
分类: 其他 发布时间: 10-16 23:18 阅读次数: 0

SwfitUI中some关键字是什么含义?

以下是打开新建SwiftUI项目的默认代码。import SwiftUIstruct ContentView: View { var body: some View { Text("Hello, World!") }}struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() }}ContentVie
分类: 其他 发布时间: 10-16 23:18 阅读次数: 0

Swift如何实现与JSON互转

JSONDecoder与JSONEncoder通过 Codable 协议实现Swift对象与JSON字符串之间的互转。public typealias Codable = Decodable & EncodableCodable 是 Decodable 和 Encodable 的类型别名。当你遵守 Codable 协议时,同时遵守Decodable 和 Encodable 协议。Swift 标准库类型都实现了 Codable , 比如 String , Double , Int 等,
分类: 其他 发布时间: 10-16 23:18 阅读次数: 0

Say Goodbye to SceneDelegate -- SwiftUI

Say Goodbye to SceneDelegate在WWDC20之前,使用SwiftUI创建视图,你必须将其包装在UIHostingController,Controller被包装在一个UIWindow,window在SceneDelegate中定义。import UIKitimport SwiftUI// Auto-generated codeclass SceneDelegate: UIResponder, UIWindowSceneDelegate { var window
分类: 其他 发布时间: 10-16 23:17 阅读次数: 0

底部输入框组件的一次实践

底部输入框:常用于文章的评论,分享,点赞。造一个通用的组件能帮助开发使用。入坑点:一开始根据设计稿8种类型设置了枚举,通过关联值来传递参数,在viewdidload中switch type来动态添加子视图,根据初始化方法中是否带文本来添加按钮旁的文本,整个布局视图代码臃肿、繁琐重复,代码质量是十分差可重用性也差。改善思路:同事推荐官方navigationItem.leftBarButtonItems的思路来写,根据传入的item数组来动态创建。限制左右item的数量,根据item一次创建视图然后更.
分类: 其他 发布时间: 10-16 23:17 阅读次数: 0

快速幂入门

16. 数值的整数次方实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 10
分类: 其他 发布时间: 10-16 23:17 阅读次数: 0

插入排序初探

插入排序思路:打扑克牌时排列手牌的方法相似。将牌从左到右,从大到小排序。我们需要将牌抽出来插入到已经排好序的手牌中的合适位置,重复插入过程完成排序。核心思想:向有序序列中插入元素。将首元素视为已排序序列执行下列过程直至未排序部分消失取出未排序部分的首元素赋给tmp在已排序部分,将所有比tmp大的元素向后移动一个单位将tmp插入到合适的空位复杂度分析时间复杂度:O(n2)空间复杂度:O(1)在插入排序中,我们将比tmp大的元素向后移动,不相邻的元素不会交换相对位置,因此插入排
分类: 其他 发布时间: 10-16 23:17 阅读次数: 0

冒泡法排序初探

冒泡排序思路:让数组中的元素像水中的气泡一样上浮,进而达到排序的目的。重复以下步骤,直到数组中不包含顺序相反的相邻元素从数组末尾开始依次比较相邻两个元素,如果大小关系相反则交换位置复杂度分析时间复杂度:O(n2)空间复杂度:O(1)冒泡排序进交换数组中的相邻元素进行比较和交换,因此不会改变元素的相对位置,是一种稳定的排序算法。冒泡排序中的交换次数称为反序数或逆序数,用于体现数列的错乱程度。#include <iostream>using namespace std
分类: 其他 发布时间: 10-16 23:16 阅读次数: 0

共用体结构体字节对齐问题

#include <iostream>using namespace std;union A { // 共用体变量共用内存, 以最长的类型为准 int a[5]; char b; double c;};struct B{ char a; // 偏移为0,占用1个字节 double b; // 偏移为1,字节补齐加7个字节, 占用8个字节 int c; // 偏移为16,占用4个字节 };union C{ long i; // 32位机器下long类型为4个字节
分类: 其他 发布时间: 10-16 23:16 阅读次数: 0

C++对象存储空间探讨

对象的存储空间一个对象要占用多大的内存空间,权威结论是:非静态成员变量总和加上编译器为CPU数据对齐和支持虚函数所产生的负担的总和。#include <iostream>using namespace std;class Box {};int main() { Box boxobj; cout << sizeof(boxobj) << endl; return 0;}程序执行结果为1空类型对象中不包含任何信息,但是创建对象时必须在内存中占用
分类: 其他 发布时间: 10-16 23:16 阅读次数: 0

循环队列代码模板

/*循环队列,head和tail指针超出数组范围之后重置为0,循环队列head和tail之间至少有一个空位。*/#include <iostream>using namespace std;const int MAXN = 5;int q[MAXN];int head, tail;// 初始化void initialize() { head = tail = 0;}// 判满bool isFull() { return head == (tail + 1) % MAX
分类: 其他 发布时间: 10-16 23:16 阅读次数: 0

POJ-2456 二分答案

在n个点中选c个点使得相邻的点之间的最小距离最大,求最大值。求二分区间中满足条件的最大值。二分区间为(0,数组中最大差距),如果mid满足题意那么比mid小的答案也满足题意。#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 1e5 + 10;int a[MAXN];int n, c;bool check(int mid) { int x = a[0]; int nu
分类: 其他 发布时间: 10-16 23:15 阅读次数: 0

HDU 4190 二分答案

把B个投票箱分配到n个城市,每个城市至少一个投票箱,投票箱的容量最小是多少?求二分区间中满足条件的最小值。#include <cstdio>#include <cmath>#include <algorithm>using namespace std;const int MAXN = 2e6 + 10;int a[MAXN];int n, b;bool check(int mid) { int num = 0; for (int i = 0; i &
分类: 其他 发布时间: 10-16 23:15 阅读次数: 0

HDU-1969 二分答案

HDU-1969将n个半径为a[i]的馅饼分给f+1个人,每个人分到的馅饼体积一样,求每个人能获取馅饼体积的最大值。求二分区间满足条件的最大值。#include <cstdio>#include <algorithm>#include <cmath>using namespace std;const int MAXN = 1e4 + 10;const double eps = 1e-10;// 精确度const double pi = 4*atan(1.
分类: 其他 发布时间: 10-16 23:15 阅读次数: 0

Git多人协作开发方案

多人协作开发问题git主分支默认为master,它是自动创建的,并且默认将本地与远程的master分支统一。主分支主要用来发布重要版本,日常开发应该在另一条分支上进行,我们把开发用的分支叫做Devlop分支,在dev分支上开发好后再合并到master分支上进行发布。日常的开发任务都需要推送到dev分支,而每个人个人用于开发的分支(个人分支、功能分支按需求进行远端推送)功能分支、修复bug分支在完成合并到dev后,合并后都可以删除该本地分支git checkout -d feature/test
分类: 其他 发布时间: 10-16 23:15 阅读次数: 0

牛客网NC105 二分查找

NC105请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。二分答案模板题,区间中满足条件的最小值。class Solution {public: /** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @param a int整型vector 有序数组 * @return int整型 */ i
分类: 其他 发布时间: 10-16 23:14 阅读次数: 0

UVa 725 暴力搜索

UVa 725输入n个正整数,按照从小到大的顺序输出形如abcde / fghij = n的表达式,其中a-j恰好为数字0-9的一个排列(可以有前导0)。只需要枚举第一个数,范围是12345-98765,已知n,找到能除尽n的第二个数,检查这2个数是否满足0-9的排列即可。检查函数中将i,j格式化输入到字符串中,排序后,检查字符串是否一一对应。#include <cstdio>#include <iostream>#include <algorithm>us
分类: 其他 发布时间: 10-16 23:14 阅读次数: 0

排列算法

1 ~ n的字典序排列利用递归的思想,先生成1的排列,直到n的排列。print_permutation(序列 A, 集合 S)。A为已排序列,S为剩余元素集合。如果S集合为空,输出A序列。如果S集合不为空,将S按序的第一个元素加入序列A,调用自身进行递归。#include <cstdio>#include <vector>#include <algorithm>using namespace std;void print_permutation(i
分类: 其他 发布时间: 10-16 23:14 阅读次数: 0

如何将泰克示波器生成的isf文件转化为csv文件

转自:https://weibo.com/p/230418812d120c0102wf2n?luicode=20000061&lfid=3995785059873962话说周末还在做实验很坑有木有,话说还是头一次碰到isf文件,它是由示波器生成的一个数据文件,直接拖入matlab解析不出来,后来跑到Tek官网搜了下,果然人家考虑的周到,看到网上还没人有较好的解决方法,故作次分享。下文需...
分类: 其他 发布时间: 10-16 23:13 阅读次数: 0

过采样技术原理介绍

来自:http://bbs.21ic.com/icview-2402956-1-9.html?_dsign=f0df6baa过采样技术原理介绍假定环境条件: 10位ADC最小分辨电压1LSB 为 1mv假定没有噪声引入的时候, ADC采样上的电压真实反映输入的电压, 那么小于1mv的话,如ADC在0.5mv是数据输出为0我们现在用4倍过采样来, 提高1位的分辨率,当我们引入较大幅值的白噪...
分类: 其他 发布时间: 10-16 23:13 阅读次数: 0