• 金仓数据库 KingbaseGIS 使用手册(6.10. 几何对象操作运算符)


    6.10. 几何对象操作运算符

    6.10.1. &&

    && — 如果输入对象A的2D bounding box与输入对象B的2D bounding box有交集,则返回TRUE

    用法

    boolean &&( geometry A , geometry B );
    boolean &&( geography A , geography B );
    

    描述

    如果输入对象A的2D bounding box与输入对象B的2D bounding box有交集,则返回TRUE

    注意

    该操作符会利用几何对象上任何可用的索引

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 && tbl2.column2 AS
    overlaps FROM ( VALUES
    (1, 'LINESTRING(0 0, 3 3)'::geometry),
    (2, 'LINESTRING(0 1, 0 5)'::geometry)) AS tbl1,
    ( VALUES
    (3, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;
    
    column1  | column1 | overlaps
    ---------+---------+----------
    1        | 3       | t
    2        | 3       | f
    (2 rows)
    

    参考

    |&>,&>,&<|,&<, ~, @

    6.10.2. &&&

    &&& —如果输入对象A的n-D bounding box与输入对象B的n-D bounding box有交集,则返回TRUE。

    用法

    boolean &&&( geometry A , geometry B );
    

    描述

    如果输入对象A的n-D bounding box与输入对象B的n-D bounding box有交集,则返回TRUE.

    注意

    该运算符可以利用几何对象上的任何索引。

    样例: 3D LineStrings

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 AS
    overlaps_3d, tbl1.column2 && tbl2.column2 AS overlaps_2d
    FROM ( VALUES
    (1, 'LINESTRING Z(0 0 1, 3 3 2)'::geometry),
    (2, 'LINESTRING Z(1 2 0, 0 5 -1)'::geometry)) AS tbl1,
    ( VALUES
    (3, 'LINESTRING Z(1 2 1, 4 6 1)'::geometry)) AS tbl2;
    
    column1  | column1 | overlaps_3d | overlaps_2d
    ---------+---------+-------------+-------------
    1        | 3       | t           |  t
    2        | 3       | f           |  t
    

    样例: 3M LineStrings

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 AS
    overlaps_3zm, tbl1.column2 && tbl2.column2 AS overlaps_2d
    FROM ( VALUES
    (1, 'LINESTRING M(0 0 1, 3 3 2)'::geometry),
    (2, 'LINESTRING M(1 2 0, 0 5 -1)'::geometry)) AS tbl1,
    ( VALUES
    (3, 'LINESTRING M(1 2 1, 4 6 1)'::geometry)) AS tbl2;
    
    column1  | column1 | overlaps_3zm| overlaps_2d
    ---------+---------+-------------+-------------
    1        | 3       | t           |  t
    2        | 3       | f           |  t
    

    参考

    &&

    6.10.3. &<

    &< — 如果输入几何对象A的bounding box与输入几何对象B的bounding box重合或者在后者的右边,则返回TRUE

    用法

    boolean &<( geometry A , geometry B );
    

    描述

    如果输入几何对象A的bounding box与输入几何对象B的bounding box重合或者在后者的左边,则返回TRUE。或者更准确地说,覆盖或者不在输入几何对象B 的bounding box的右侧。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 &< tbl2.column2 AS overleft
    FROM
    ( VALUES
    (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING(0 0, 3 3)'::geometry),
    (3, 'LINESTRING(0 1, 0 5)'::geometry),
    (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;
    
    column1  | column1 | overleft
    ---------+---------+----------
    1        | 2       | f
    1        | 3       | f
    1        | 4       | t
    (3 rows)
    

    参考

    &&, |&>, &>, &<|

    6.10.4. &<|

    &<| — 如果A的bounding box覆盖或在B的bounding box的下侧,则返回TRUE。

    用法

    boolean &<|( geometry A , geometry B );
    

    描述

    如果A的bounding box覆盖或在B的bounding box的下侧,则返回TRUE,或者更准确地说覆盖或者不在输入几何对象B的 bounding box的上侧。

    • 该函数支持CircularString和Curve几何类型对象。

    • 该函数支持 Polyhedral Surface类型几何对象。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 &<| tbl2.column2 AS overbelow FROM
    ( VALUES
    (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING(0 0, 3 3)'::geometry),
    (3, 'LINESTRING(0 1, 0 5)'::geometry),
    (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;
    
    column1  | column1 | overbelow
    ---------+---------+-----------
    1        | 2       | f
    1        | 3       | t
    1        | 4       | t
    (3 rows)
    

    参考

    &&, |&>, &>, &<

    6.10.5. &>

    &> —如果A的bounding box覆盖或在B的bounding box的右侧,则返回TRUE。

    用法

    boolean &>( geometry A , geometry B );
    

    描述

    如果A的bounding box覆盖或在B的bounding box的右侧,则返回TRUE,或者更准确地说覆盖或者不在输入几何对象B的bounding box的左侧。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 &> tbl2.column2 AS overright FROM
    ( VALUES
    (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING(0 0, 3 3)'::geometry),
    (3, 'LINESTRING(0 1, 0 5)'::geometry),
    (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;
    
    column1    | column1 | overright
    -----------+---------+-----------
    1          |2        | t
    1          |3        | t
    1          |4        | f
    (3 rows)
    

    参考

    &&, |&>, &<|, &<

    6.10.6. <<

    << — 如果A的bounding box严格地在B的bounding box左侧,则返回TRUE。

    用法

    boolean <<( geometry A , geometry B );
    

    描述

    如果A的bounding box严格地在B的bounding box左侧,则返回TRUE。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1,
    FROM
    ( VALUES
    (1, 'LINESTRING (1
    ( VALUES
    (2, 'LINESTRING (0
    (3, 'LINESTRING (6
    (4, 'LINESTRING (2
    tbl2.column1, tbl1.column2 << tbl2.column2 AS left
    2, 1 5)'::geometry)) AS tbl1,
    0, 4 3)'::geometry),
    0, 6 5)'::geometry),
    2, 5 6)'::geometry)) AS tbl2;
    
    column1  | column1 | left
    ---------+---------+------
    1        | 2       | f
    1        | 3       | t
    1        | 4       | t
    (3 rows)
    

    参考

    >>, |>>, <<|

    6.10.7. <<|

    <<| —如果A的bounding box严格地在B的bounding box下侧,则返回TRUE

    用法

    boolean <<|( geometry A , geometry B );
    

    描述

    如果A的bounding box严格地在B的bounding box下侧,则返回TRUE

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1,
    FROM
    ( VALUES
    (1, 'LINESTRING (0
    ( VALUES
    tbl2.column1, tbl1.column2 <<| tbl2.column2 AS below
    0, 4 3)'::geometry)) AS tbl1,
    (2, LINESTRING (1 4, 1 7)'::geometry),
    (3, 'LINESTRING (6
    (4, 'LINESTRING (2
    1, 6 5)'::geometry),
    3, 5 6)'::geometry)) AS tbl2;
    
    column1  | column1 | below
    ---------+---------+-------
    1        | 2       | t
    1        | 3       | f
    1        | 4       | f
    (3 rows)
    

    参考

    <<, >>, |>>

    6.10.8. =

    = — 当 geometry/geography 类型的对象坐标点序列的值和顺序都相同时,返回 true。

    用法

    boolean =( geometry A , geometry B );
    boolean =( geography A , geography B );
    

    描述

    当 geometry/geography 类型的对象坐标点序列的值和顺序都相同时,返回 true。 KingbaseES使用针对几何对象定义的运算符=,<和>来进行内部排序和几何对象的比较(例如在GROUP BY或ORDER BY这样的SQL子句中)。

    注意

    只有当 geometry/geography 类型的对象在所有方面都相同:相同的坐标点,相同的坐标点顺序,该操作符才会将它们判定为相等。 对于“空间等价性”,可能会忽略坐标点的顺序,将具有不同表示形式,但覆盖了相同空间范围的对象判定为等价。此时应考虑使用 ST_OrderingEquals 或 ST_Equals。

    警告

    该运算符不会利用几何对象上的索引。如果希望利用索引来检测等价性,请联合使用 = 和 && 操作符。

    • 该函数支持CircularString和Curve几何类型对象

    • 该函数支持 Polyhedral Surface类型几何对象.

    样例

    SELECT 'LINESTRING(0 0, 0 1, 1 0)'::geometry = 'LINESTRING(1 1, 0 0)'::geometry;
    
    ?column?
    ----------
    t
    (1 row)
    
    SELECT ST_AsText(column1)FROM ( VALUES
    ('LINESTRING(0 0, 1 1)'::geometry),
    ('LINESTRING(1 1, 0 0)'::geometry)) AS foo;
    
    st_astext
    ---------------------
    LINESTRING(0 0,1 1)
    LINESTRING(1 1,0 0)
    (2 rows)
    
    
    注意:此处的 GROUP BY 子句使用 = 号比较几何对象的相等性。
    
    SELECT ST_AsText(column1)
    FROM ( VALUES
    ('LINESTRING(0 0, 1 1)'::geometry),
    ('LINESTRING(1 1, 0 0)'::geometry)) AS foo
    GROUP BY column1;
    
    st_astext
    ---------------------
    LINESTRING(0 0,1 1)(1 row)
    
    SELECT ST_GeomFromText('POINT(1707296.37 4820536.77)') =
    ST_GeomFromText('POINT(1707296.27 4820536.87)') As pt_intersect;
    
    pt_intersect
    -------------
    f
    

    参考

    ST_Equals, ST_OrderingEquals

    6.10.9. >>

    >> — 如果几何对象A的bounding box严格在几何对象B的右边,则返回true。

    用法

    boolean >>( geometry A , geometry B );
    

    描述

    如果几何对象A的bounding box严格在几何对象B的右边,则返回true。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 >> tbl2.column2 AS right
    FROM
    ( VALUES
    (1, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING (1 4, 1 7)'::geometry),
    (3, 'LINESTRING (6 1, 6 5)'::geometry),
    (4, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl2;
    
    column1  | column1 | right
    ---------+---------+-------
    1        | 2       | t
    1        | 3       | f
    1        | 4       | f
    (3 rows)
    

    参考

    <<, |>>, <<|

    6.10.10. @

    @ —如果几何对象A的bounding box被几何对象B的bounding box严格包含,则返回true。

    用法

    boolean @( geometry A , geometry B );
    

    描述

    如果几何对象A的bounding box被几何对象B的bounding box严格包含,则返回true。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 @ tbl2.column2 AS contained
    FROM
    ( VALUES
    (1, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING (0 0, 4 4)'::geometry),
    (3, 'LINESTRING (2 2, 4 4)'::geometry),
    (4, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl2;
    
    column1  | column1 | contained
    ---------+---------+-----------
    1        | 2       | t
    1        | 3       | f
    1        | 4       | t
    (3 rows)
    

    参考

    ~, &&

    6.10.11. |&>

    |&> —如果几何对象A的bounding box覆盖B的bounding box或在B的bounding box上面,则返回true

    用法

    boolean |&>( geometry A , geometry B );
    

    描述

    如果几何对象A的bounding box覆盖B的bounding box或在B的bounding box上面,则返回true,或者更精确的说覆盖B的boundingbox或者不在B的bounding box下面。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 |&> tbl2.column2 AS overabove
    FROM
    ( VALUES
    (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING(0 0, 3 3)'::geometry),
    (3, 'LINESTRING(0 1, 0 5)'::geometry),
    (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;
    
    column1  | column1 | overabove
    ---------+---------+-----------
    1        | 2       | t
    1        | 3       | f
    1        | 4       | f
    (3 rows)
    

    参考

    &&, &>, &<|, &<

    6.10.12. |>>

    |>> — 如果A的bounding box严格地在B的bounding box上面,则返回TRUE。

    用法

    boolean |>>( geometry A , geometry B );
    

    描述

    如果A的bounding box严格地在B的bounding box上面,则返回TRUE。

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 |>> tbl2.column2 AS above
    FROM
    ( VALUES
    (1, 'LINESTRING (1 4, 1 7)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING (0 0, 4 2)'::geometry),
    (3, 'LINESTRING (6 1, 6 5)'::geometry),
    (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;
    
    column1  | column1 | above
    ---------+---------+-------
    1        | 2       | t
    1        | 3       | f
    1        | 4       | f
    (3 rows)
    

    参考

    <<, >>, <<|

    6.10.13. ~

    ~ —如果A的bounding box包含B的bounding box,则返回TRUE

    用法

    boolean ~( geometry A , geometry B );
    

    描述

    如果A的bounding box包含B的bounding box,则返回TRUE

    注意

    该运算符可以利用几何对象上的任何索引。

    样例

    SELECT tbl1.column1, tbl2.column1, tbl1.column2 ~ tbl2.column2 AS contains
    FROM
    ( VALUES
    (1, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl1,
    ( VALUES
    (2, 'LINESTRING (0 0, 4 4)'::geometry),
    (3, 'LINESTRING (1 1, 2 2)'::geometry),
    (4, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl2;
    
    
    column1  | column1 | contains
    ---------+---------+----------
    1        | 2       | f
    1        | 3       | t
    1        | 4       | t
    (3 rows)
    

    参考

    @,&&

    6.10.14. ~=

    ~= —如果A的bounding box和B的bounding box相同,则返回TRUE。

    用法

    boolean ~=( geometry A , geometry B );
    

    描述

    如果A的bounding box和B的bounding box相同,则返回TRUE。

    注意

    该运算符可以利用几何对象上的任何索引。

    • 该函数支持 Polyhedral Surface类型几何对象。

    样例

    select 'LINESTRING(0 0, 1 1)'::geometry ~= 'LINESTRING(0 1, 1 0)'::geometry as equality;
    equality         |
    -----------------+----------
    t                |
    

    参考

    ST_Equals, ST_OrderingEquals, =

    6.10.15. <->

    <-> — 返回两个几何对象之间的 2D 距离。

    用法

    double precision <->( geometry A , geometry B );
    double precision <->( geography A , geography B );
    

    描述

    返回两个几何对象之间的 2D 距离。 用于在 ORDER BY 子句中利用索引查找最近邻结果集。 对于 geography 类型,会返回椭球面上的距离。

    注意

    该运算符可以利用几何对象上任何 2D GiST 索引。该运算符和其他运算符不同的是,空间索引使用只能用于ORDER BY 子句的场景。

    注意

    如果输入参数的其中一个几何对象是一个常量(不在子查询中),例如'SRID=3005;POINT(1011102450541)'::geometry则使用索引,如果运算符左边或右边均为普通的geometry,那么不会使用索引

    样例

      SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,edabbr, vaabbr
      FROM va2005
      ORDER BY d limit 10;
    
      d                 | edabbr | vaabbr
      ------------------+--------+--------
      0                 | ALQ    | 128
      5541.57712511724  | ALQ    | 129A
      5579.67450712005  | ALQ    | 001
      6083.4207708641   | ALQ    | 131
      7691.2205404848   | ALQ    | 003
      7900.75451037313  | ALQ    | 122
      8694.20710669982  | ALQ    | 129B
      9564.24289057111  | ALQ    | 130
      12089.665931705   | ALQ    | 127
      18472.5531479404  | ALQ    | 002
      (10 rows)
    
    KNN算法的原始结果:
    
    SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,edabbr, vaabbr
    FROM va2005
    ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry limit 10;
    
    d                 | edabbr | vaabbr
    ------------------+--------+--------
    0                 | ALQ    | 128
    5579.67450712005  | ALQ    | 001
    5541.57712511724  | ALQ    | 129A
    8694.20710669982  | ALQ    | 129B
    9564.24289057111  | ALQ    | 130
    6083.4207708641   | ALQ    | 131
    12089.665931705   | ALQ    | 127
    24795.264503022   | ALQ    | 124
    24587.6584922302  | ALQ    | 123
    26764.2555463114  | ALQ    | 125
    (10 rows)
    

    注意在实际距离排序上排错的项,以及实际显示在前十位的不同的项。 最后,混合的结果为:

    WITH index_query AS (
    SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,edabbr, vaabbr
    FROM va2005
    ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry LIMIT 100)
    SELECT *
    FROM index_query
    ORDER BY d limit 10;
    
    d                 | edabbr | vaabbr
    ------------------+--------+--------
    0                 | ALQ    | 128
    5541.57712511724  | ALQ    | 129A
    5579.67450712005  | ALQ    | 001
    6083.4207708641   | ALQ    | 131
    7691.2205404848   | ALQ    | 003
    7900.75451037313  | ALQ    | 122
    8694.20710669982  | ALQ    | 129B
    9564.24289057111  | ALQ    | 130
    12089.665931705   | ALQ    | 127
    18472.5531479404  | ALQ    | 002
    (10 rows)
    

    参考

    ST_DWithin, ST_Distance,<#>

    6.10.16. |=|

    |=| — 返回两条轨迹之间的3D距离。

    用法

    double precision |=|( geometry A , geometry B );
    

    描述

    |=|运算符返回两条轨迹之间的3D距离(参见 ST_IsValidTrajectory)。

    这与 ST_DistanceCPA 函数功能相同,但作为一个操作符,它可以被用来基于 N 维索引进行最近邻搜索。

    注意

    该运算符可以利用几何对象上的 N 维 GiST 索引。它与其它操作符的不同之处在于,只有用在 ORDER BY 子句中时才会利用空间索引。

    注意

    该运算符只有在几何对象之一是常量(不是在子查询或CTE中)的时候才会使用索引,例如:'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry 。

    样例

    将一条查询产生的轨迹保存在 ksql 变量中。

    \set qt 'ST_AddMeasure(ST_MakeLine(ST_MakePointM(-350,300,0),ST_MakePointM(-410,490,0)),10,20)'
    
    SELECT track_id, dist FROM (
    SELECT track_id, ST_DistanceCPA(tr,:qt) dist
    FROM trajectories
    ORDER BY tr |=| :qt
    LIMIT 5
    ) foo;
    
    track_id        dist
    ----------+-------------------
          395 | 0.576496831518066
          380 |  5.06797130410151
          390 |  7.72262293958322
          385 |   9.8004461358071
          405 |  10.9534397988433
    (5 rows)
    

    参考

    ST_DistanceCPA, ST_ClosestPointOfApproach, ST_IsValidTrajectory

    6.10.17. <#>

    <#> —返回两个几何对象的bounding box之间的距离。该运算符会使用浮点精度(相对于基本的几点对象所使用的double双精度)。对于其他几何类型,返回的是bounding box的中心点之间的双精度输出距离。在距离排序和使用KNN 功能进行近邻限制输出对象个数时候很有用。

    用法

    double precision <#>( geometry A , geometry B );
    

    描述

    <#>运算符计算两个单精度的bounding box之间的距离,如果有空间索引,则使用空间索引。该函数对于使用近邻计算后距离排序很有用。

    注意

    该运算符可以利用几何对象上任意索引。该运算符和其他运算符不同的是,空间索引使用只能用于ORDER BY 子句的场景。

    注意

    该运算符只有在几何对象之一是常量的时候,例如ORDER BY (ST_GeomFromText('POINT(1 2)') <#> geom)会使用索引,如果是g1.geom<#>g2.geom则不使用索引。

    样例

    SELECT * FROM (
    SELECT b.tlid, b.mtfcc,
    b.geom <#> ST_GeomFromText('LINESTRING(746149 2948672,745954 2948576,
    745787 2948499,745740 2948468,745712 2948438,
    745690 2948384,745677 2948319)',2249) As b_dist,
    ST_Distance(b.geom, ST_GeomFromText('LINESTRING(746149 2948672,745954
    2948576,
    745787 2948499,745740 2948468,745712 2948438,
    745690 2948384,745677 2948319)',2249)) As act_dist
    FROM bos_roads As b
    ORDER BY b_dist, b.tlid LIMIT 100) As foo
    ORDER BY act_dist, tlid LIMIT 10;
    
    Tlid      | mtfcc  | b_dist           |act_dist
    ----------+--------+------------------+-------------------------
    85732027  | S1400  | 0                | 0
    85732029  | S1400  | 0                | 0
    85732031  | S1400  | 0                | 0
    85734335  | S1400  | 0                | 0
    85736037  | S1400  | 0                | 0
    624683742 | S1400  | 0                | 128.528874268666
    85719343  | S1400  | 260.839270432962 | 260.839270432962
    85741826  | S1400  | 164.759294123275 | 260.839270432962
    85732032  | S1400  | 277.75           | 311.830282365264
    85735592  | S1400  | 222.25           | 311.830282365264
    (10 rows)
    

    参考

    ST_DWithin, ST_Distance, <->

    6.10.18. <<->>

    <<->> — 返回两个几何对象的边界框中心之间的3D距离。

    用法

    double precision <<->>( geometry A , geometry B );
    

    描述

    <#>运算符返回两个几何对象的边界框中心之间的3D距离。 它适用于做最近邻搜索时按近似距离对几何对象进行排序。

    注意

    该运算符可以利用几何对象上的 N 维空间索引。它与其它操作符的不同之处在于,只有用在 ORDER BY 子句中时才会利用空间索引。

    注意

    该运算符只有在几何对象之一是常量(不是在子查询或CTE中)的时候才会使用索引,例如:'SRID=3005;POINT(1011102 450541)'::geometry 。

    参考

    <<#>>, <->

  • 相关阅读:
    tomcat 部署及优化
    一篇文章带你搞懂使用PID
    【面试题】圣杯布局和双飞翼布局
    Python工程师Java之路(w)数据库连接池Druid
    Vue2源码学习笔记 - 14.响应式原理—核心本质
    算法:(八)树
    什么是代码签名证书?
    vite3、vue 项目打包分包进阶-组件分包
    Maven生命周期
    gcc和g++的爱恨纠葛
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126272402