neo4j查询语言Cypher详解(三)--函数
函数
Cypher中的函数如果输入参数为null,则返回null。
以字符串作为输入的函数都对Unicode字符进行操作,而不是对标准字符进行操作。例如,size()函数应用于任何Unicode字符将返回1,即使该字符不适合一个字符的16位。
可以通过 SHOW FUNCTIONS
查看函数定义。
函数签名中参数格式:eg:
all(variable :: VARIABLE //:: VARIABLE,说明是个变量,可用于后面的 WHERE 部分IN
list :: LIST OF ANY? //list,是个LIST泛型。
WHERE predicate :: ANY? // predicate,是任意的断言
)
:: (BOOLEAN?) //函数返回值类型为BOOLEAN
断言函数
Function | Signature | Description |
---|---|---|
all() | all(variable :: VARIABLE IN list :: LIST OF ANY? WHERE predicate :: ANY?) :: (BOOLEAN?) | Returns true if the predicate holds for all elements in the given list. |
any() | any(variable :: VARIABLE IN list :: LIST OF ANY? WHERE predicate :: ANY?) :: (BOOLEAN?) | Returns true if the predicate holds for at least one element in the given list. |
exists() | exists(input :: ANY?) :: (BOOLEAN?) | Returns true if a match for the pattern exists in the graph. |
isEmpty() | isEmpty(input :: LIST? OF ANY?) :: (BOOLEAN?) | Checks whether a list is empty. |
isEmpty() | isEmpty(input :: MAP?) :: (BOOLEAN?) | Checks whether a map is empty. |
isEmpty() | isEmpty(input :: STRING?) :: (BOOLEAN?) | Checks whether a string is empty. |
none() | none(variable :: VARIABLE IN list :: LIST OF ANY? WHERE predicate :: ANY?) :: (BOOLEAN?) | Returns true if the predicate holds for no element in the given list. |
single() | single(variable :: VARIABLE IN list :: LIST OF ANY? WHERE predicate :: ANY?) :: (BOOLEAN?) | Returns true if the predicate holds for exactly one of the elements in the given list. |
标量函数
Function | Signature | Description |
---|---|---|
coalesce() | coalesce(input :: ANY?) :: (ANY?) | 返回第一个非null值。 |
endNode() | endNode(input :: RELATIONSHIP?) :: (NODE?) | Returns the end node of a relationship. |
head() | head(list :: LIST? OF ANY?) :: (ANY?) | Returns the first element in a list. |
id() | id(input :: NODE?) :: (INTEGER?) | Deprecated Returns the id of a node. Replaced by elementId() |
id(input :: RELATIONSHIP?) :: (INTEGER?) | Deprecated Returns the id of a relationship. Replaced by elementId() . | |
last() | last(list :: LIST? OF ANY?) :: (ANY?) | |
length() | length(input :: PATH?) :: (INTEGER?) | Returns the length of a path. |
properties() | properties(input :: MAP?) :: (MAP?) | 返回一个对象的所有属性,作为一个map |
properties(input :: NODE?) :: (MAP?) | 返回一个节点的所有属性,作为一个map | |
properties(input :: RELATIONSHIP?) :: (MAP?) | 返回一个关系的所有属性,作为一个map | |
randomUUID() | randomUUID() :: (STRING?) | |
size() | size(input :: LIST? OF ANY?) :: (INTEGER?) | Returns the number of items in a list. |
size(input :: STRING?) :: (INTEGER?) | Returns the number of Unicode characters in a string. | |
startNode() | startNode(input :: RELATIONSHIP?) :: (NODE?) | |
toBoolean() | toBoolean(input :: STRING?) :: (BOOLEAN?) | |
toBoolean(input :: BOOLEAN?) :: (BOOLEAN?) | ||
toBoolean(input :: INTEGER?) :: (BOOLEAN?) | ||
toBooleanOrNull() | toBooleanOrNull(input :: ANY?) :: (BOOLEAN?) | 转换为boolean,不能转换返回null。 |
toFloat() | toFloat(input :: NUMBER?) :: (FLOAT?) | |
toFloat(input :: STRING?) :: (FLOAT?) | ||
toFloatOrNull() | toFloatOrNull(input :: ANY?) :: (FLOAT?) | 转换为小数,不能转换返回null。 |
toInteger() | toInteger(input :: NUMBER?) :: (INTEGER?) | |
toInteger(input :: BOOLEAN?) :: (INTEGER?) | ||
toInteger(input :: STRING?) :: (INTEGER?) | ||
toIntegerOrNull() | toIntegerOrNull(input :: ANY?) :: (INTEGER?) | 转换为整形,不能转换返回null。 |
type() | type(input :: RELATIONSHIP?) :: (STRING?) | Returns the string representation of the relationship type. |
示例
CREATE (p:Person {name: 'Stefan', city: 'Berlin'})
RETURN properties(p)
//OUT PUT:
//: {"city":"Berlin","name":"Stefan"}
聚合函数
Function | Signature | Description |
---|---|---|
avg() | avg(input :: DURATION?) :: (DURATION?) | |
avg(input :: FLOAT?) :: (FLOAT?) | ||
avg(input :: INTEGER?) :: (INTEGER?) | ||
collect() | collect(input :: ANY?) :: (LIST? OF ANY?) | 收集数据作为一个LIST。 |
count() | count(input :: ANY?) :: (INTEGER?) | |
max() | max(input :: ANY?) :: (ANY?) | |
min() | min(input :: ANY?) :: (ANY?) | |
percentileCont() | percentileCont(input :: FLOAT?, percentile :: FLOAT?) :: (FLOAT?) | |
percentileDisc() | percentileDisc(input :: FLOAT?, percentile :: FLOAT?) :: (FLOAT?) | |
`percentileDisc(input :: INTEGER?, percentile :: FLOAT?) :: (INTEGER?) | ||
stdev() | stdev(input :: FLOAT?) :: (FLOAT?) | |
stdevp() | stdevp(input :: FLOAT?) :: (FLOAT?) | |
sum() | sum(input :: DURATION?) :: (DURATION?) | |
`sum(input :: FLOAT?) :: (FLOAT?) | ||
`sum(input :: INTEGER?) :: (INTEGER?) |
集合函数
Function | Signature | Description |
---|---|---|
keys() | keys(input :: MAP?) :: (LIST? OF STRING?) | 返回MAP的所有KEY LIST |
keys(input :: NODE?) :: (LIST? OF STRING?) | 返回节点的所有属性 LIST | |
keys(input :: RELATIONSHIP?) :: (LIST? OF STRING?) | 返回关系的所有属性 LIST | |
labels() | labels(input :: NODE?) :: (LIST? OF STRING?) | Returns a list containing the string representations for all the labels of a node. |
nodes() | nodes(input :: PATH?) :: (LIST? OF NODE?) | Returns a list containing all the nodes in a path. |
range() | range(start :: INTEGER?, end :: INTEGER?) :: (LIST? OF INTEGER?) | Returns a list comprising all integer values within a specified range. |
range(start :: INTEGER?, end :: INTEGER?, step :: INTEGER?) :: (LIST? OF INTEGER?) | Returns a list comprising all integer values within a specified range created with step length. | |
reduce() | `reduce(accumulator :: VARIABLE = initial :: ANY?, variable :: VARIABLE IN list :: LIST OF ANY? | expression :: ANY) :: (ANY?)` |
relationships() | relationships(input :: PATH?) :: (LIST? OF RELATIONSHIP?) | Returns a list containing all the relationships in a path. |
reverse() | reverse(input :: LIST? OF ANY?) :: (LIST? OF ANY?) | Returns a list in which the order of all elements in the original list have been reversed. |
tail() | tail(input :: LIST? OF ANY?) :: (LIST? OF ANY?) | Returns all but the first element in a list. |
toBooleanList() | toBooleanList(input :: LIST? OF ANY?) :: (LIST? OF BOOLEAN?) | |
toFloatList() | toFloatList(input :: LIST? OF ANY?) :: (LIST? OF FLOAT?) | |
toIntegerList() | toIntegerList(input :: LIST? OF ANY?) :: (LIST? OF INTEGER?) | |
toStringList() | toStringList(input :: LIST? OF ANY?) :: (LIST? OF STRING?) |
示例
toBooleanList()
:
RETURN toBooleanList(null) as noList,
toBooleanList([null, null]) as nullsInList,
toBooleanList(['a string', true, 'false', null, ['A','B']]) as mixedList
noList | nullsInList | mixedList |
---|---|---|
<null> | [<null>,<null>] | [<null>,true,false,<null>,<null>] |
总结:
- 参数不是个LIST,报错
- LIST 中的null,不转换,保留
- LIST中的不可转换元素,结果为null。
- BOOLEAN类型的元素,保留原始值
toFloatList
,toIntegerList
,toStringList
与toBooleanList
规则类似。
数值函数
Function | Signature | Description |
---|---|---|
abs() | abs(input :: FLOAT?) :: (FLOAT?) | |
abs(input :: INTEGER?) :: (INTEGER?) | ||
ceil() | ceil(input :: FLOAT?) :: (FLOAT?) | |
floor() | floor(input :: FLOAT?) :: (FLOAT?) | |
isNaN() | isNaN(input :: FLOAT?) :: (BOOLEAN?) | Returns true if the floating point number is NaN . |
isNaN(input :: INTEGER?) :: (BOOLEAN?) | ||
rand() | rand() :: (FLOAT?) | |
round() | round(input :: FLOAT?) :: (FLOAT?) | |
round(value :: FLOAT?, precision :: NUMBER?) :: (FLOAT?) | ||
round(value :: FLOAT?, precision :: NUMBER?, mode :: STRING?) :: (FLOAT?) | ||
sign() | sign(input :: FLOAT?) :: (INTEGER?) | |
sign(input :: INTEGER?) :: (INTEGER?) |
对数函数
Function | Signature | Description |
---|---|---|
e() | e() :: (FLOAT?) | 返回e。 |
exp() | exp(input :: FLOAT?) :: (FLOAT?) | 返回e^n。 |
log() | log(input :: FLOAT?) :: (FLOAT?) | 返回自然对数,以e为底 |
log10() | log10(input :: FLOAT?) :: (FLOAT?) | 返回以10位底的对数 |
sqrt() | sqrt(input :: FLOAT?) :: (FLOAT?) | 平方差 |
三角函数
Function | Signature | Description |
---|---|---|
acos() | acos(input :: FLOAT?) :: (FLOAT?) | |
asin() | `asin(input :: FLOAT?) :: (FLOAT?) | |
atan() | atan(input :: FLOAT?) :: (FLOAT?) | |
atan2() | atan2(y :: FLOAT?, x :: FLOAT?) :: (FLOAT?) | |
cos() | cos(input :: FLOAT?) :: (FLOAT?) | |
cot() | cot(input :: FLOAT?) :: (FLOAT?) | |
degrees() | degrees(input :: FLOAT?) :: (FLOAT?) | 将弧度转换为角度 |
haversin() | haversin(input :: FLOAT?) :: (FLOAT?) | 半正矢计算 |
pi() | pi() :: (FLOAT?) | |
radians() | radians(input :: FLOAT?) :: (FLOAT?) | 将角度转换为弧度 |
sin() | sin(input :: FLOAT?) :: (FLOAT?) | |
tan() | tan(input :: FLOAT?) :: (FLOAT?) |
字符串函数
Function | Signature | Description |
---|---|---|
left() | left(original :: STRING?, length :: INTEGER?) :: (STRING?) | |
ltrim() | ltrim(input :: STRING?) :: (STRING?) | |
replace() | replace(original :: STRING?, search :: STRING?, replace :: STRING?) :: (STRING?) | |
reverse() | reverse(input :: STRING?) :: (STRING?) | |
right() | `right(original :: STRING?, length :: INTEGER?) :: (STRING?) | |
rtrim() | rtrim(input :: STRING?) :: (STRING?) | |
split() | split(original :: STRING?, splitDelimiter :: STRING?) :: (LIST? OF STRING?) | |
split(original :: STRING?, splitDelimiters :: LIST? OF STRING?) :: (LIST? OF STRING?) | ||
substring() | substring(original :: STRING?, start :: INTEGER?) :: (STRING?) | 从0开始 |
substring(original :: STRING?, start :: INTEGER?, length :: INTEGER?) :: (STRING?) | ||
toLower() | toLower(input :: STRING?) :: (STRING?) | |
toString() | toString(input :: ANY?) :: (STRING?) | |
toStringOrNull() | toStringOrNull(input :: ANY?) :: (STRING?) | |
toUpper() | toUpper(input :: STRING?) :: (STRING?) | |
trim() | trim(input :: STRING?) :: (STRING?) |
时间函数
Function | Signature | Description |
---|---|---|
date() | date(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATE?) | 创建DATE |
date.realtime() | date.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATE?) | 使用 realtime clock 创建当前DATE |
date.statement() | date.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATE?) | 使用 statement clock 创建当前DATE |
date.transaction() | date.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATE?) | 使用 transaction clock 创建当前DATE |
date.truncate() | date.truncate(unit :: STRING?, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?, fields = null :: MAP?) :: (DATE?) | 截断DATE |
datetime() | datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATETIME?) | |
datetime.fromepoch() | datetime.fromepoch(seconds :: NUMBER?, nanoseconds :: NUMBER?) :: (DATETIME?) | |
datetime.fromepochmillis() | datetime.fromepochmillis(milliseconds :: NUMBER?) :: (DATETIME?) | |
datetime.realtime() | datetime.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATETIME?) | |
datetime.statement() | datetime.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATETIME?) | |
datetime.transaction() | datetime.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (DATETIME?) | |
datetime.truncate() | datetime.truncate(unit :: STRING?, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?, fields = null :: MAP?) :: (DATETIME?) | |
localdatetime() | localdatetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALDATETIME?) | |
localdatetime.realtime() | localdatetime.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALDATETIME?) | |
localdatetime.statement() | localdatetime.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALDATETIME?) | |
localdatetime.transaction() | localdatetime.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALDATETIME?) | |
localdatetime.truncate() | localdatetime.truncate(unit :: STRING?, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?, fields = null :: MAP?) :: (LOCALDATETIME?) | |
localtime() | localtime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALTIME?) | |
localtime.realtime() | localtime.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALTIME?) | |
localtime.statement() | localtime.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALTIME?) | |
localtime.transaction() | localtime.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (LOCALTIME?) | |
localtime.truncate() | localtime.truncate(unit :: STRING?, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?, fields = null :: MAP?) :: (LOCALTIME?) | |
time() | time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (TIME?) | |
time.realtime() | time.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (TIME?) | |
time.statement() | time.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (TIME?) | |
time.transaction() | time.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY?) :: (TIME?) | |
time.truncate() | time.truncate(unit :: STRING?, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY?, fields = null :: MAP?) :: (TIME?) |
时钟控制
transaction
: 同一个事务,时间返回相同值。statement
: 同一个语句的同一次调用,时间返回相同值。realtime
: 系统时间。
截断单位
millennium
:千年century
:世纪decade
:十年year
:weekYear
:quarter
:month
:week
:day
:hour
:minute
:second
:millisecond
: 毫秒microsecond
: 微秒
示例
date([{timezone}])
RETURN date() AS currentDate
RETURN date({timezone: 'America/Los Angeles'}) AS currentDateInLAdate({year [, month, day]})
UNWIND [
date({year: 1984, month: 10, day: 11}),
date({year: 1984, month: 10}),
date({year: 1984})
] AS theDate
RETURN theDatedate({year [, week, dayOfWeek]})
UNWIND [
date({year: 1984, week: 10, dayOfWeek: 3}),
date({year: 1984, week: 10}),
date({year: 1984})
] AS theDate
RETURN theDate
所有时间函数,都支持通过一个Map对象构造时间实例。
duration函数
Function | Signature | Description |
---|---|---|
duration() | duration(input :: ANY?) :: (DURATION?) | |
duration.between() | duration.between(from :: ANY?, to :: ANY?) :: (DURATION?) | 计算2个时间差 |
duration.inDays() | duration.inDays(from :: ANY?, to :: ANY?) :: (DURATION?) | |
duration.inMonths() | duration.inMonths(from :: ANY?, to :: ANY?) :: (DURATION?) | |
duration.inSeconds() | duration.inSeconds(from :: ANY?, to :: ANY?) :: (DURATION?) |
示例
duration([ {years, quarters, months, weeks, days, hours, minutes, seconds, milliseconds, microseconds, nanoseconds} ])duration(temporalAmount) // temporalAmount STRING类型
duration标准字符串格式:P[nY][nM][nW][nD][T[nH][nM][nS]]
,具体见:https://neo4j.com/docs/cypher-manual/current/values-and-types/temporal/#cypher-temporal-specifying-durations
duration.between(instant1, instant2)
字段
years
quarters
months
weeks
days
hours
minutes
seconds
milliseconds
microseconds
nanoseconds
空间函数
Function | Signature | Description |
---|---|---|
point.distance() | `point.distance(from :: POINT?, to :: POINT?) :: (FLOAT?) | |
point() - Cartesian 2D | point(input :: MAP?) :: (POINT?) | |
point() - Cartesian 3D | point(input :: MAP?) :: (POINT?) | |
point() - WGS 84 2D | `point(input :: MAP?) :: (POINT?) | |
point() - WGS 84 3D | `point(input :: MAP?) :: (POINT?) | |
point.withinBBox() | point.withinBBox(point :: POINT?, lowerLeft :: POINT?, upperRight :: POINT?) :: (BOOLEAN?) |
加载 CSV 函数
Function | Signature | Description |
---|---|---|
file() | file() :: (STRING?) | 返回文件路径 |
linenumber() | linenumber() :: (INTEGER?) | 返回行数 |
Graph functions
Function | Signature | Description |
---|---|---|
graph.names() | graph.names() :: (LIST? OF STRING?) | |
graph.propertiesByName() | graph.propertiesByName(name :: STRING?) :: (MAP?) | |
graph.byName() | USE graph.byName(name :: STRING?) |
用户自定义函数
Type | Description | Usage | Developing |
---|---|---|---|
Scalar | For each row the function takes parameters and returns a result. | Using UDF | Extending Neo4j (UDF) |
Aggregating | Consumes many rows and produces an aggregated result. | Using aggregating UDF | Extending Neo4j (Aggregating UDF) |
附录
参考
https://neo4j.com/docs/cypher-manual/current/functions/
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
neo4j查询语言Cypher详解(三)--函数
函数 Cypher中的函数如果输入参数为null,则返回null。 以字符串作为输入的函数都对Unicode字符进行操作,而不是对标准字符进行操作。例如,size()函数应用于任何Unicode字符将返回1,即使该字符不适合一个字符的16位。 可以通过 …...
![](https://img-blog.csdnimg.cn/a93db62b11714cc080269e30acf77ca2.jpeg#pic_center)
kafka权威指南(阅读摘录)
零复制 Kafka 使用零复制技术向客户端发送消息——也就是说,Kafka 直接把消息从文件(或者更确切地说是 Linux 文件系统缓存)里发送到网络通道,而不需要经过任何中间缓冲区。这是 Kafka 与其他大部分数据库系统不一样的地方&#…...
![](https://img-blog.csdnimg.cn/img_convert/333830dc257ed5dd5dfebebbc19d7f06.png)
【爬虫实践】使用Python从网站抓取数据
一、说明 本周我不得不为客户抓取一个网站。我意识到我做得如此自然和迅速,分享它会很有用,这样你也可以掌握这门艺术。【免责声明:本文展示了我的抓取做法,如果您有更多相关做法请在评论中分享】 二、计划策略 2.1 策划 确定您…...
![](https://img-blog.csdnimg.cn/66c3f84010f24e1d8382bebf16b0cc8e.png)
win10 2022unity设置中文
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言解决方法 前言 在Edit->preferences里找不到language选项。 解决方法 【1】打开下面地址 注意 :把{version}换成你当前安装的版本,比如说如果…...
![](https://img-blog.csdnimg.cn/img_convert/0fe24b7aa520bdaa8d0d580894553454.png)
python表白代码大全可复制,python表白代码大全简单
大家好,小编来为大家解答以下问题,python表白代码大全可复制,python表白程序代码完整版,现在让我们一起来看看吧! 今天是20230520,有人说:5代表的是人生五味,酸甜苦辣咸;…...
![](https://img-blog.csdnimg.cn/4fd7ccd054f64bbdafea35970da66b44.png)
wordpress 打开缓慢处理
gravatar.com 头像网站被墙 追踪发现请求头像时长为21秒 解决方案一 不推荐,容易失效,网址要是要稳定为主,宁愿头像显示异常,也不能网址打不开 网上大部分搜索到的替换的CDN网址都过期了,例如:gravatar.du…...
![](https://img-blog.csdnimg.cn/849e5340b4e3434a93e0946fe6276476.png)
Adobe ColdFusion 反序列化漏洞复现(CVE-2023-29300)
0x01 产品简介 Adobe ColdFusion是美国奥多比(Adobe)公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言。 0x02 漏洞概述 Adobe ColdFusion存在代码问题漏洞,该漏洞源于受到不受信任数据反序列化漏洞的影响,攻击…...
![](https://img-blog.csdnimg.cn/371bd8ba99744572b7c0eff19a626e73.png)
林【2018】
关键字: BST插入叶子结点、ADT结伴操作、队列插入前r-1、哈希函数二次探测法(1,-1,4,-4)、队列元素个数、折半查找失败次数、广义表链表结构、B-树构建、单链表指定位置插入数组元素 一、判断 二、单选 h(49)+1,-1,+4,-4...
![](https://img-blog.csdnimg.cn/9a481f1af1474d92846cff35f8ac3ac8.png)
ffmpeg+nginx实现rtsp协议摄像头web端播放
ffmpegnginx实现rtsp协议摄像头web端播放 环境准备准备nginx环境添加rtmp模块添加hls转发 使用ffmpeg,将摄像头rtsp转为rtmp并推送到nginxVLC播放验证 环境准备 nginx(需要安装rtmp模块)ffmpeg 6.0vlc播放器(本地播放验证&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
【周赛第69期】满分题解 软件工程选择题 枚举 dfs
目录 选择题1.2.3.4.面向对象设计七大原则 编程题S数最小H值 昨晚没睡好,脑子不清醒,痛失第1名 选择题 1. 关于工程效能,以下哪个选项可以帮助提高团队的开发效率? A、频繁地进行代码审查 B、使用自动化测试工具 C、使用版本控…...
![](https://www.ngui.cc/images/no-images.jpg)
P2015 二叉苹果树
P2015 二叉苹果树 类似于带限制背包问题,但不知道也能做。 n , q n,q n,q 范围小,大胆设 dp 状态。设 f u , i \large f_{u,i} fu,i 表示 u u u 子树内保留 i i i 根树枝的最大苹果数,可得状态转移方程 f u , i f u , j f v , i − …...
![](https://www.ngui.cc/images/no-images.jpg)
Linux 内核音频数据传递主要流程
Linux 用户空间应用程序通过声卡驱动程序(一般牵涉到多个设备驱动程序)和 Linux 内核 ALSA 框架导出的 PCM 设备文件,如 /dev/snd/pcmC0D0c 和 /dev/snd/pcmC0D0p 等,与 Linux 内核音频设备驱动程序和音频硬件进行数据传递。PCM 设…...
![](https://www.ngui.cc/images/no-images.jpg)
torch.device函数
torch.device 是 PyTorch 中用于表示计算设备(如CPU或GPU)的类。它允许你在代码中指定你希望在哪个设备上执行张量和模型操作,本文主要介绍了 torch.device 函数的用法和功能。 本文主要包含以下内容: 1.创建设备对象2.将张量和模…...
![](https://img-blog.csdnimg.cn/img_convert/15bd2f6901978390882403a475d43d63.jpeg)
火车头采集器AI伪原创【php源码】
大家好,本文将围绕python作业提交什么文件展开说明,python123怎么提交作业是一个很多人都想弄明白的事情,想搞清楚python期末作业程序需要先了解以下几个事情。 火车头采集ai伪原创插件截图: I have a python project, whose fold…...
![](https://www.ngui.cc/images/no-images.jpg)
Python中常见的6种数据类型
数字(Numbers):数字类型用于表示数值,包括整数(int)和浮点数(float)。 字符串(Strings):字符串类型用于表示文本,由一系列字符组成。字…...
![](https://img-blog.csdnimg.cn/5f88574f663d45e7b7ed8c53c6b2ab3c.png)
消息队列项目(2)
我们使用 SQLite 来进行对 Exchange, Queue, Binding 的硬盘保存 对 Message 就保存在硬盘的文本中 SQLite 封装 这里是在 application.yaml 中来引进对 SQLite 的封装 spring:datasource:url: jdbc:sqlite:./data/meta.dbusername:password:driver-class-name: org.sqlite.…...
![](https://img-blog.csdnimg.cn/c027e1c4d0a6460383b36563b45c5f8b.png)
解决MAC M1处理器运行Android protoc时出现的错误
Protobuf是Google开发的一种新的结构化数据存储格式,一般用于结构化数据的序列化,也就是我们常说的数据序列化。这个序列化协议非常轻量级和高效,并且是跨平台的。目前,它支持多种主流语言,比传统的XML、JSON等方法更具…...
![](https://www.ngui.cc/images/no-images.jpg)
C#使用SnsSharp实现鼠标键盘钩子,实现全局按键响应
gitee下载地址:https://gitee.com/linsns/snssharp 一、键盘事件,使用SnsKeyboardHook 按键事件共有3个: KeyDown(按键按下) KeyUp(按键松开) KeyPress(按键按下并松开) 以KeyDown事件为例,使用代码如下&…...
![](https://img-blog.csdnimg.cn/8530de22c0f14dc28c41fc620fe51d19.png)
Zookeeper基础操作
搭建Zookeeper服务器 windows下部署 下载地址: https://mirrors.cloud.tencent.com/apache/zookeeper/zookeeper-3.7.1/ 修改配置文件 打开conf目录,将 zoo_sample.cfg复制一份,命名为 zoo.cfg打开 zoo.cfg,修改 dataDir路径,…...
![](https://img-blog.csdnimg.cn/aef53c9eb54e4b40bb6fb14a1aba23c2.png)
【CSS】说说响应式布局
目录 一、是什么 二、怎么实现 1、媒体查询 2、百分比 3、vw/vh 4、小结 三、总结 一、是什么 响应式设计简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。 响应式网站常见特点: 同时适配PC 平板 手机等…...
数据结构 | 利用二叉堆实现优先级队列
目录 一、二叉堆的操作 二、二叉堆的实现 2.1 结构属性 2.2 堆的有序性 2.3 堆操作 队列有一个重要的变体,叫作优先级队列。和队列一样,优先级队列从头部移除元素,不过元素的逻辑顺序是由优先级决定的。优先级最高的元素在最前ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
Javascript怎样阻止事件传播?
在 JavaScript 中,可以使用事件对象的方法来阻止事件传播。事件传播指的是当一个元素上触发了一个事件,该事件会在事件流中传播到父元素或祖先元素,从而影响到它们。 事件传播有三个阶段:捕获阶段、目标阶段和冒泡阶段。阻止事件…...
![](https://img-blog.csdnimg.cn/2c3b420acb1444b29765130f0b10bc4b.png)
web-csrf
目录 CSRF与XSS的区别: get请求 原理: pikachu为例 post请求 pikachu为例 CSRF与XSS的区别: CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限 get请求 原理:…...
![](https://img-blog.csdnimg.cn/24dc885ce3d64f8c87f1b617824ea879.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATWVtb3Jpc2UxOTk5,size_20,color_FFFFFF,t_70,g_se,x_16)
数据结构—图的存储结构
6.图 回顾:数据的逻辑结构 集合——数据元素间除 “同属于一个集合” 外,无其他关系。 线性结构——一个对一个,如线性表、栈、队列 树形结构——一个对多个,如树 图形结构——多个对多个,如图 6.1图的定义和术语 图:…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue3 中 setup,ref 和 reactive 的理解
setup Vue3中使用了Composition API这种写法,使得所有的组合API函数都在此使用, 只在初始化时执行一次。 函数如果返回对象, 对象中的属性或方法, 模板中可以直接使用 ref 作用:定义一个数据的响应式 语法:const xxx ref(initValue) 一般用来…...
![](https://img-blog.csdnimg.cn/img_convert/d21952e94db9fcd601ff7acad54f1b29.png)
BL302嵌入式ARM控制器进行SQLite3数据库操作的实例演示
本文主要讲述了在钡铼技术BL302嵌入式arm控制器上运行 SQLite3 数据库的命令示例。SQLite3 是一个轻型的嵌入式数据库,不需要安装数据库服务器进程,占用资源低且处理速度快。 首先,需要将对应版本的 SQLite3 文件复制到设备的 /usr/ 目录下&…...
![](https://img-blog.csdnimg.cn/e6fc5c387cf24543b53a68e1c449bd7a.png)
C++ 多线程:std::future
std::future std::future 简介示例1博客引用来源 std::future 简介 我们前面介绍的std::thread 是C11中提供异步创建多线程的工具,只能是异步运行任务,却无法获取任务执行的结果,一般都是依靠全局对象,全局对象在多线程下是及其不…...
![](https://img-blog.csdnimg.cn/a9d12b4f960c452f9650a8806f42709c.png)
断路器回路电阻试验
试验目的 断路器回路电阻主要取决于断路器动、 静触头的接触电阻, 其大小直接影响正常 运行时的发热情况及切断短路电流的性能, 是反应安装检修质量的重要数据。 试验设备 回路电阻测试仪 厂家: 湖北众拓高试代销 试验接线 对于单断口的断路器, 通过断口两端的接线…...
![](https://www.ngui.cc/images/no-images.jpg)
Python中的CALL_FUNCTION指令
在Python字节码中,CALL_FUNCTION指令后跟的数字代表这次函数调用需要从栈上取出的参数的数量。具体来说,这个数字包括位置参数和关键字参数的数量。 这个数字的低两位表示位置参数的数量,然后每两位表示一个关键字参数的数量。因此ÿ…...
![](https://img-blog.csdnimg.cn/ff09412bb94b4604b04788237420a923.png)
微服务——es数据聚合+RestClient实现聚合
数据聚合 聚合的种类 DSL实现Bucket聚合 如图所示,设置了10个桶,那么就显示了数量最多的前10个桶,品牌含有7天酒店的有30家, 品牌含有如家的也有30家。 修改排序规则 限定聚合范围 DSL实现Metrics聚合 如下案例要求对不同的品…...
![](/images/no-images.jpg)
石家庄网站建设平台有哪些/建站系统主要包括
文章目录前言(一)套接字(1)认识套接字(2)套接字的属性1. 套接字的域2. 套接字类型3. 套接字协议前言 套接字接口 : 类似于管道的用法 套接字用途: 同一台计算机的进程通信支持分布在网络中的客户…...
![](https://images.cnblogs.com/cnblogs_com/xzz_233/1035409/o_3.png)
关键词优化软件/武汉seo网站推广
考完了可以发题解了。 做法是link-cut tree维护子树信息,并不需要维护黑树白树那些的。 下面是一条重链: 如果4是根的话,那么在splay上是这样的: 在splay中,子树的信息都已经计算完毕,那么需要计算这个子树…...
![](https://img-blog.csdnimg.cn/6012a192ff1d4545b8ac6fdc49ea854f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP56CB5ZOl5ZGA,size_20,color_FFFFFF,t_70,g_se,x_16)
wordpress php版本更改/湖南官网网站推广软件
jQuery创建、删除、添加元素 1、创建元素 2、添加元素 内部添加: 外部添加: 3、删除元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&qu…...
![](/images/no-images.jpg)
网站从哪些方面做优化/朋友圈信息流广告投放价格
今天在CSDN上看到一个帖子 :".net 4.0和4.5不同版本的Uri.ToString行为不同?", 调试.NET Framework 源代码发现,是这句代码起的作用 internal static bool ShouldUseLegacyV2Quirks{get{return UriParser.s_QuirksVersion < Uri…...
![](/images/no-images.jpg)
专业提供网站建设服务包括哪些/百度有钱花人工客服
C# 正则表达式正则表达式 是一种匹配输入文本的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符、运算符和结构组成。定义正则表达式下面列出了用于定义正则表达式的各种类别的字符、运算符和结构。字符转义字符类定位点分组构造限定符反向引用构造备…...
![](/images/no-images.jpg)
做拍福利爱福利视频网站/百度短链接在线生成
SRC parquet是apache的开源项目,一个压缩格式。 parquet的数据自带表结构,所以需要创建schema对象。schema对象可以是spark中df的StructType,也可以是parquet官方提供的api usage 可以通过sql的形式读取parquet文件创建df al df ss.sql(…...