const

数据可视化 gojs 实践关系图 demo:节点分组

北慕城南 提交于 2020-03-08 20:23:59
本文是关于如何使用可视化库 gojs 完成节点分组关系展示的,从零基础到实现最终效果。希望对使用 gojs 的小伙伴有帮助。 1. 节点分组需求及 demo 展示 需求 能正确展示组的层次,以及节点之间的关系。 单选节点、多选节点,获取到节点信息 选中组,能选中组中的节点,能获取到组中的节点信息 选中节点,当前节点视为根节点,能选中根节点连线下的所有节点,并获取到节点信息 2. 准备 从后端获取到的接口数据: const data = { "properties": [ { "key": "t-2272", "parentKey": "j-1051", "name": "哈哈" }, { "key": "p-344", "parentKey": "g--1586357764", "name": "test" }, { "key": "t-2271", "parentKey": "j-1051", "name": "查询" }, { "key": "t-2275", "parentKey": "j-1052", "name": "开开心心" }, { "key": "j-1054", "parentKey": "p-344", "name": "嘻嘻" }, { "key": "t-2274", "parentKey": "j-1052", "name": "查询" }, {

iTOP4412设备驱动学习三

假如想象 提交于 2020-03-08 18:34:59
本节是关于生成设备节点。 学习资料来源于迅为的视频学习教程的整理 1. 杂项设备,或者说是对一部分字符设备的封装或者一部分不好分类的。 可以节省主设备号,驱动写起来相对简单(用封装好的杂项设备可以减少一步注册主设备号的过程) 2.源代码位置 杂项设备初始化源代码:/drivers/char/misc.c,属于内核中强制编译的。 杂项设备注册头文件:include/linux/miscdevice.h,主要的结构体为miscdevice 1 struct miscdevice { 2 int minor; 3 const char *name; 4 const struct file_operations *fops; 5 struct list_head list; 6 struct device *parent; 7 struct device *this_device; 8 const char *nodename; 9 mode_t mode; 10 }; 11 12 extern int misc_register(struct miscdevice * misc); 13 extern int misc_deregister(struct miscdevice *misc); 来源: https://www.cnblogs.com/nanzh/p/12444029

PAT甲级 A1048 测试点1 未通过解决方法

浪尽此生 提交于 2020-03-08 14:54:42
提交代码仅有测试点1未通过,建议测试以下用例: input 5 15 1 16 15 12 20 ouput(right) No Solution 若使用标记数组记录数字出现次数,且在循环中不对标记数组中大于总钱数的值进行处理,则有可能输出错误: 20 -5 修改后的代码(未优化): #include<stdio.h> #include<stdlib.h> int cmp_int(const void *a,const void *b){ return *(int *)a - *(int *)b; } int main(){ int n,m; scanf("%d%d",&n,&m); int num[n]; int have[100010] = {0}; for(int i = 0;i < n;i++){ scanf("%d",&num[i]); have[num[i]]++; } qsort(num,n,sizeof(num[0]),cmp_int); int i; for(i = 0;i < n;i++){ if(num[i] == 0){ break; } if(num[i] == m - num[i]){ if(have[num[i]] >= 2){ printf("%d %d",num[i],num[i]); break; } }else if(num[i] < m){

Effective C++ 学习笔记

别等时光非礼了梦想. 提交于 2020-03-08 13:46:07
1. 基础部分 Item 1: View C++ as a federation of languages. 对于内建类型,按值传递优于按引用传递,对于自定义类型则相反。 C++可视为4中子语言的联合:C,Object-Oriented C++,Template C++和STL。 Item 2: Prefer consts, enums, and inlines to #defines. 只有整型常量可以在类声明里面初始化: class Klass { const static int num = 1 ; //也可只声明,在定义文件中,即类外部定义、初始化; }; enum类型也可以在类内部初始化。 Item 3: Use const whenever possible. 对于指针p,const在 * 左边时,p指向的值为常量,const出现在 * 右边时,p指向的地址为常量。 const int * p1 ; int const * p2 ; int * const p3 ; ​ //以上代码,p1和p2一样,其指向的值为常量;p3指向的地址为常量 如果类Klass有同名的两个成员函数foo,其中一个为const类型,那么const实列优先调用const版的foo。 const函数不能改变非static的成员变量。 mutable修饰的成员,在const函数中也可以改变其值。

STL——仿函数

百般思念 提交于 2020-03-08 11:28:43
1,仿函数只为算法来服务。仿函数,由名字可以确定是模仿函数的意思,因此必须要重载()。这样创建出来的对象是一个对象,像一个函数,因此叫做仿函数。 2,struct plus:public binary_function<T, T, T>继承模板库的函数,因为 这是可以使用适配的条件 ,有些时候不继承也可以完成某些功能,不继承可以完成的功能,继承以后一定可以完成,继承以后能完成的功能,不继承不一定能完成。STL规定每个Adaptable Function都应该挑选适当的来继承,因为 Function Adapter将会提问问题 。 //算法类 template <class T> struct plus:public binary_function<T, T, T>{ T operator() (const T&x, const T&y) const {return x + y;} }; template <class T> struct minus:public binary_function<T, T, T>{ T operator() (const T&x, const T&y) const {return x - y;} }; //逻辑运算类 template <class T> struct logical_and:public binary_function<T, T,

C语言第二次作业

喜欢而已 提交于 2020-03-08 10:23:41
1.笔记 2.视频中的代码列表 3.存在的问题 const关键字及其作用(用法) const定义只读变量的关键字,或者说 const 是定义常变量的关键字。 说 const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如: const int a = 10 ; const 和变量类型 int 可以互换位置,二者是等价的,即上条语句等价于: int const a = 10 ; 用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋初值。 如果定义的时候未初始化,对于未初始化的局部变量,程序在执行的时候会自动把一个很小的负数存放进去。这样后面再给它赋初值的话就是“改变它的值”了,即发生语法错误。 用 const 修饰的变量,无论是全局变量还是局部变量,生存周期都是程序运行的整个过程。全局变量的生存周期为程序运行的整个过程这个是理所当然的。而使用 const 修饰过的局部变量就有了静态特性,它的生存周期也是程序运行的整个过程。我们知道全局变量是静态的,静态的生存周期就是程序运行的整个过程。但是用const修饰过的局部变量只是有了静态特性,并没有说它变成了静态变量虽然

模板 岛娘的无敌头文件

人盡茶涼 提交于 2020-03-08 10:12:40
岛娘的无敌头文件 #pragma comment(linker, "/STACK:36777216") //#pragma GCC optimize ("O2") #define LOCAL //#include "testlib.h" #include <functional> #include <algorithm> #include <iostream> #include <fstream> #include <sstream> #include <iomanip> #include <numeric> #include <cstring> #include <climits> #include <cassert> #include <complex> #include <cstdio> #include <string> #include <vector> #include <bitset> #include <queue> #include <stack> #include <cmath> #include <ctime> #include <list> #include <set> #include <map> //#include <tr1/unordered_set> //#include <tr1/unordered_map> //#include <array>

C++标准转换运算符reinterpret_cast

*爱你&永不变心* 提交于 2020-03-08 08:34:51
C++标准转换运算符reinterpret_cast 来源 https://www.cnblogs.com/codingmengmeng/p/7650885.html reinterpret_cast<new_type> (expression) reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expression)有完全相同的比特位。 什么是无关类型?我没有弄清楚,没有找到好的文档来说明类型之间到底都有些什么关系(除了类的继承以外)。后半句倒是看出了reinterpret_cast的字面意思:重新解释(类型的比特位)。我们真的可以随意将一个类型值的比特位交给另一个类型作为它的值吗?其实不然。 IBM的C++指南里倒是明确告诉了我们reinterpret_cast可以,或者说应该在什么地方用来转换运算符: 从指针类型到一个足够大的整数类型 从整数类型或者枚举类型到指针类型 从一个指向函数的指针到另一个不同类型的指向函数的指针 从一个指向对象的指针到另一个不同类型的指向对象的指针 从一个指向类函数成员的指针到另一个指向不同类型的函数成员的指针 从一个指向类数据成员的指针到另一个指向不同类型的数据成员的指针 不过我在Xcode中测试了一下,事实上reinterpret_cast的使用并不局限在上边所说的几项的

C++面试题

时光怂恿深爱的人放手 提交于 2020-03-08 08:06:32
语言基础类 1. 指针和引用的区别? (1)指针有自己的一块空间,而引用只是一个别名;  (2)使用 sizeof 看一个指针的大小为 4 字节(32位,如果要是64位的话指针为8字节),而引用则是被引用对象的大小。 (3) 引用必须在定义时被初始化,指针不必; (4)不存在指向空值的引用,但存在指向空值的指针。 2.static和 const的用法,(能说出越多越好)(重点) 首先说说const的用法(绝对不能说是常数) 1.限定变量为不可修改。 2.限定成员函数不可以修改任何数据成员。 3.使用const关键字修饰的变量,一定要对变量进行初始化 下面的声明都是什么意思? const int a; a是一个常整型数 int const a; a是一个常整型数 const int *a; a是一个指向常整型数的指针,整型数是不可修改的,但指针可以 int * const a; a为指向整型数的常指针,指针指向的整型数可以修改,但指针是不可修改的 int const * a const; a是一个指向常整型数的常指针,指针指向的整型数是不可修改的,同时指针也是不可修改的 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

【计算几何】线段相交

老子叫甜甜 提交于 2020-03-08 06:48:10
问题描述:已知两条线段P1P2和Q1Q2,判断P1P2和Q1Q2是否相交,若相交,求出交点。 两条线段的位置关系可以分为三类:有重合部分、无重合部分但有交点、无交点。 算法的步骤如下: 1.快速排斥实验。 设以线段P1P2为对角线的矩形为R,设以线段Q1Q2为对角线的矩形为T,如果R和T不相交,则两线段不相交。 2.跨立实验。 如果两线段相交,则两线段必然相互跨立对方。 若P1P2跨立Q1Q2,则矢量(P1-Q1)和(P2-Q1)位于矢量(Q2-Q1)的两侧,即 ( P1 - Q1 ) × ( Q2 - Q1 ) * ( P2 - Q1 ) × ( Q2 - Q1 ) < 0。 若Q1Q2跨立P1P2,则矢量(Q1-P1)和(Q2-P1)位于矢量(P2-P1)的两侧,即 ( Q1 - P1 ) × ( P2 - P1 ) * ( Q2 - P1 ) × ( P2 - P1 ) < 0。 排斥实验和跨立实验的示例如下图所示。 3.计算交点。 当判定两条线段相交后,可以进行交点的求解,求交点可以用平面几何方法,列点斜式方程来完成。但由于点斜式方程难以处理斜率为0的特殊情况,不方便求解。因而,参用向量法求解交点。 设交点为(x0,y0),则下列方程组成立: 根据以上方程组,消除参数k1和k2,得到如下方程: 然后求解(x0,y0),结果如下所示: 1 typedef struct