当前位置: 首页 > news >正文

深圳婚纱摄影网站建设公司调查公司

深圳婚纱摄影网站建设,公司调查公司,搜索引擎优化的主要内容,如何做代刷网站长目录 零、简介一、Reading二、Search三、Modification四、Ordering 零、简介 列表在CMake中大量使用。初始化列表语法如下: set(myList a b c) # Creates the list "a;b;c"归根结底,列表只是一个由分号分隔列表项的单个字符串,这…

目录

  • 零、简介
  • 一、Reading
  • 二、Search
  • 三、Modification
  • 四、Ordering

零、简介

列表在CMake中大量使用。初始化列表语法如下:

set(myList a b c) 	# Creates the list "a;b;c"

归根结底,列表只是一个由分号分隔列表项的单个字符串,这使得操作单个列表项变得不太方便。CMake提供了list()命令来简化这类任务,他的基本语法如下:

list(<command> <list> [<other_args>])

其中,<command> 是处理列表的命令,每个命令有各自的<other_args>,具体如下:

Readinglist(LENGTH <list> <out-var>)list(GET <list> <element index> [<index> ...] <out-var>)list(JOIN <list> <glue> <out-var>)list(SUBLIST <list> <begin> <length> <out-var>)Searchlist(FIND <list> <value> <out-var>)Modificationlist(APPEND <list> [<element>...])list(FILTER <list> {INCLUDE | EXCLUDE} REGEX <regex>)list(INSERT <list> <index> [<element>...])list(POP_BACK <list> [<out-var>...])list(POP_FRONT <list> [<out-var>...])list(PREPEND <list> [<element>...])list(REMOVE_ITEM <list> <value>...)list(REMOVE_AT <list> <index>...)list(REMOVE_DUPLICATES <list>)list(TRANSFORM <list> <ACTION> [...])Orderinglist(REVERSE <list>)list(SORT <list> [...])

一、Reading

  • 列表长度

    list(LENGTH <list> <out-var>)
    

    通过 out-var 返回列表的长度。

    set(myList a b c) 	# Creates the list "a;b;c"
    list(LENGTH myList len)
    message("length = ${len}")  # length = 3
    
  • 通过index访问元素

    list(GET <list> <element index> [<index> ...] <out-var>)
    

    其中,index 是列表的索引,可以指定过多个,out-var是通过 index 找到的元素。

    指定索引值时,如果 0 或更大,则从列表开头开始索引,0 表示第一个列表元素。如果为 -1 或更小,则从列表末尾开始索引,-1 表示最后一个列表元素。使用负索引计数时要小心:不是从 0 开始,而是从 -1 开始。-0 相当于 0,即第一个列表元素。这和 Pythonlist 的索引是一致的。

    set(myList a b c) 	# Creates the list "a;b;c"
    list(GET myList 2 1 letters)
    message("letters = ${letters}")   # letters = c;b
    
  • 拼接元素 (CMake 3.12 引入)

    list(JOIN <list> <glue> <out-var>)
    

    使用 <glue> 作为连接符将列表中的元素拼接起来,并通过 out-var 返回拼接结果。

    set(myList a b c) 	# Creates the list "a;b;c"
    list(JOIN myList - join)
    message("join = ${join}")  # join = a-b-c
    
  • 子列表(CMake 3.12 引入)

    list(SUBLIST <list> <begin> <length> <out-var>)
    

    返回给定列表的子列表。如果 <length>0,将返回一个空列表。如果<length>-1 或列表长度小于 <begin>+<length> 则返回列表从 <begin> 到结尾的所有元素。

    set(myList a b c d e) 	# Creates the list "a;b;c;d;e"
    list(SUBLIST myList 1 3 sublist)
    message("sublist[1:3] = ${sublist}")    # sublist[1:3] = b;c;d
    list(SUBLIST myList 1 0 sublist)
    message("sublist[1:0] = ${sublist}")    # sublist[1:0] =
    list(SUBLIST myList 1 -1 sublist)
    message("sublist[1:-1] = ${sublist}")   # sublist[1:-1] = b;c;d;e
    list(SUBLIST myList 2 7 sublist)
    message("sublist[2:7] = ${sublist}")    # sublist[2:7] = c;d;e
    

二、Search

list(FIND <list> <value> <out-var>)

返回列表中指定元素的索引,如果未找到该元素则返回 -1

set(myList a b c d e) 	# Creates the list "a;b;c;d;e"
list(FIND myList d find)
message("find(d) = ${find}")    # find(d) = 3
list(FIND myList g find)
message("find(g) = ${find}")    # find(g) = -1

三、Modification

以下操作会修改原有列表。

  • 在队尾追加元素

    list(APPEND <list> [<element>...])
    

    将元素追加到列表最后。如果 <list> 不存在,则其值将被视为空,并且 <element> 将附加到该空列表中。

    set(myList a b c d e)	# Creates the list "a;b;c;d;e"
    list(APPEND myList 1 2 3)
    message("append(1 2 3) = ${myList}")    # append(1 2 3) = a;b;c;d;e;1;2;3
    list(APPEND newList 1 2 3)
    message("append(1 2 3) = ${newList}")   # append(1 2 3) = 1;2;3
    
  • 在队头插入元素 (CMake 3.15 引入)

    list(PREPEND <list> [<element>...])
    

    将元素插入到列表中的第 0 个位置。如果 <list> 不存在,则其值将被视为空,并且 <element> 将附加到该空列表中。

    set(myList a b c d e)   # Creates the list "a;b;c;d;e"
    list(PREPEND myList 1 2 3)
    message("prepend(1 2 3) = ${myList}")    # prepend(1 2 3) = 1;2;3;a;b;c;d;e
    list(PREPEND newList 1 2 3)
    message("prepend(1 2 3) = ${newList}")   # prepend(1 2 3) = 1;2;3
    
  • 过滤元素 (CMake 3.6 引入)

    list(FILTER <list> {INCLUDE | EXCLUDE} REGEX <regex>)
    

    从列表中包含或排除与 <regex> 匹配的元素。REGEX 表示支持正则表达式。

    set(newList hello hi world)
    list(FILTER newList INCLUDE REGEX h)
    message("newList = ${newList}")     # newList = hello;hi
    set(newList hello hi world)
    list(FILTER newList EXCLUDE REGEX h)
    message("newList = ${newList}")     # newList = world
    
  • 插入元素

    list(INSERT <list> <index> [<element>...])
    

    将元素插入到列表的指定索引处。指定超出范围的索引是错误的。

    有效索引为 0N ,其中 N 是列表的长度。空列表的长度为 0

    如果 <list> 不存在,则其值将被视为空,并且 <element> 将附加到该空列表中。

    set(newList world)
    list(INSERT newList 0 hello)
    message("newList = ${newList}")     # newList = hello;world
    list(INSERT newList 3 null)         # Error
    
  • 从队尾删除元素 (CMake 3.15 引入)

    list(POP_BACK <list> [<out-var>...])
    

    如果未给出 <out-var>,则仅删除最后一个元素。否则,在提供N个 <out-var> 的情况下,将最后N个元素的值分配给给定变量,并从 <list> 中删除最后N个元素。

    set(myList a b c d e)   # Creates the list "a;b;c;d;e;1;2;3"
    list(POP_BACK myList)
    message("myList = ${myList}")  # myList = a;b;c;d;e;1;2
    list(POP_BACK myList a b)
    message("myList = ${myList}, a = ${a}, b = ${b}")    # myList = a;b;c;d;e, a = 2, b = 1
    
  • 从队头删除元素 (CMake 3.15 引入)

    list(POP_FRONT <list> [<out-var>...])
    

    如果未给出 <out-var>,则仅删除第一个元素。否则,在提供N个 <out-var> 的情况下,将前N个元素的值分配给给定变量,并从 <list> 中删除前N个元素。

    set(myList a b c d e 1 2 3)   # Creates the list "a;b;c;d;e;1;2;3"
    list(POP_FRONT myList)
    message("myList = ${myList}")  # myList = b;c;d;e;1;2;3
    list(POP_FRONT myList a b)
    message("myList = ${myList}, a = ${a}, b = ${b}")    # myList = d;e;1;2;3, a = b, b = c
    
  • 按值删除元素

    list(REMOVE_ITEM <list> <value>...)
    

    从列表中删除给定值的所有元素。

    set(myList a b 3 d e 1 2 3)   # Creates the list "a;b;3;d;e;1;2;3"
    list(REMOVE_ITEM myList 1 2 3)
    message("myList = ${myList}")    # myList = a;b;d;e
    
  • 按索引删除元素

    list(REMOVE_AT <list> <index>...)
    

    从列表中删除给定索引处的元素。

    set(myList a b 3 d e 1 2 3)   # Creates the list "a;b;3;d;e;1;2;3"
    list(REMOVE_AT myList 1 2 3)
    message("myList = ${myList}")    # myList = a;e;1;2;3
    
  • 元素去重

    list(REMOVE_DUPLICATES <list>)
    

    删除列表中的重复项目。保留项目的相对顺序,但如果遇到重复项,则仅保留第一个重复的元素。

    set(myList a b 3 d 3 1 2 3)   # Creates the list "a;b;3;d;e;1;2;3"
    list(REMOVE_DUPLICATES myList)
    message("myList = ${myList}")    # myList = a;b;3;d;1;2
    
  • 对元素进行批量变换

    list(TRANSFORM <list> <ACTION> [<SELECTOR>] [OUTPUT_VARIABLE <output variable>])
    

    将变换方法 <ACTION> 应用于每个元素,或应用于 <SELECTOR> 选定的元素,对于输出结果,可以直接对原列表进行修改,也可以输出到 OUTPUT_VARIABLE 指定的变量。

    变换方法 <ACTION> 如下:

    • APPEND、PREPEND

      list(TRANSFORM <list> (APPEND|PREPEND) <value> ...)
      

      将指定值 <value> 附加到列表的每个元素的前面或后面。

    • TOUPPER、TOLOWER

      list(TRANSFORM <list> (TOLOWER|TOUPPER) ...)
      

      将列表的每个元素转换为大写或小写字符。

    • STRIP

      list(TRANSFORM <list> STRIP ...)
      

      删除列表中每个元素前后的空格。

    • GENEX_STRIP

      list(TRANSFORM <list> GENEX_STRIP ...)
      

      删除列表中每个元素的生成器表达式。

    • REPLACE

      list(TRANSFORM <list> REPLACE <regular_expression> <replace_expression> ...)
      

      将与正则表达式 <regular_expression> 匹配的部分替换成 <replace_expression>

    TRANSFORM 还允许使用选择器 <SELECTOR> 选定要执行变换的操作的元素,可用的选择器如下:

    • AT

      list(TRANSFORM <list> <ACTION> AT <index> [<index> ...] ...)
      

      通过索引选择。

    • FOR

      list(TRANSFORM <list> <ACTION> FOR <start> <stop> [<step>] ...)
      

      通过 <start><stop> 指定一个遍历索引的范围,可以选择使用 <step> 定义遍历步长(默认为1)。

    • REGEX

      list(TRANSFORM <list> <ACTION> REGEX <regular_expression> ...)
      

      指定正则表达式。只有与正则表达式匹配的元素才会被转换。

四、Ordering

  • 反转列表

    list(REVERSE <list>)
    

    该操作为就地操作,会修改原有列表。

    set(myList a b c d e 1 2 3)   # Creates the list "a;b;c;d;e;1;2;3"
    list(REVERSE myList)
    message("myList = ${myList}")    # myList = 3;2;1;e;d;c;b;a
    
  • 排序

    list(SORT <list> [COMPARE <compare>] [CASE <case>] [ORDER <order>])
    

    默认按 ASCII 码顺序升序排序,区分大小写。

    使用 COMPARE 可以指定排序的方式。(CMake 3.13 引入)

    • STRING

      ASCII 码顺序排序,默认为该项。

    • FILE_BASENAME

      按文件的 basename 对文件 pathname 列表进行排序。

    • NATURAL(CMake 3.18 引入)

      使用自然顺序对字符串列表进行排序。示例如下:

      对于列表 10.0 1.1 2.1 8.0 2.0 3.1

      STRING 模式排序为 1.1 10.0 2.0 2.1 3.1 8.0

      NATURAL 模式排序为 1.1 2.0 2.1 3.1 8.0 10.0

    使用 CASE 可以指定是否区分大小写。(CMake 3.13 引入)

    • SENSITIVE

      区分大小写,默认为该项。

    • INSENSITIVE

      不区分大小写。

    使用 ORDER 可以指定升序或降序。(CMake 3.13 引入)

    • ASCENDING

      按升序对列表进行排序,默认为该项。

    • DESCENDING

      按降序对列表进行排序。


文章转载自:
http://www.morning.ptmsk.cn.gov.cn.ptmsk.cn
http://www.morning.fpxms.cn.gov.cn.fpxms.cn
http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn
http://www.morning.wsnbg.cn.gov.cn.wsnbg.cn
http://www.morning.dhyqg.cn.gov.cn.dhyqg.cn
http://www.morning.glncb.cn.gov.cn.glncb.cn
http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn
http://www.morning.jcxzq.cn.gov.cn.jcxzq.cn
http://www.morning.tfrlj.cn.gov.cn.tfrlj.cn
http://www.morning.zlfxp.cn.gov.cn.zlfxp.cn
http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn
http://www.morning.gtqx.cn.gov.cn.gtqx.cn
http://www.morning.mqwnz.cn.gov.cn.mqwnz.cn
http://www.morning.rtlth.cn.gov.cn.rtlth.cn
http://www.morning.ksggl.cn.gov.cn.ksggl.cn
http://www.morning.fthcq.cn.gov.cn.fthcq.cn
http://www.morning.dzqr.cn.gov.cn.dzqr.cn
http://www.morning.drrt.cn.gov.cn.drrt.cn
http://www.morning.ckntb.cn.gov.cn.ckntb.cn
http://www.morning.rsdm.cn.gov.cn.rsdm.cn
http://www.morning.jzyfy.cn.gov.cn.jzyfy.cn
http://www.morning.rpsjh.cn.gov.cn.rpsjh.cn
http://www.morning.qtfss.cn.gov.cn.qtfss.cn
http://www.morning.gwmjy.cn.gov.cn.gwmjy.cn
http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn
http://www.morning.tfwsk.cn.gov.cn.tfwsk.cn
http://www.morning.fzwf.cn.gov.cn.fzwf.cn
http://www.morning.qsmch.cn.gov.cn.qsmch.cn
http://www.morning.ssjry.cn.gov.cn.ssjry.cn
http://www.morning.srmpc.cn.gov.cn.srmpc.cn
http://www.morning.bfjyp.cn.gov.cn.bfjyp.cn
http://www.morning.tlfyb.cn.gov.cn.tlfyb.cn
http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn
http://www.morning.rqqn.cn.gov.cn.rqqn.cn
http://www.morning.spwln.cn.gov.cn.spwln.cn
http://www.morning.rjmb.cn.gov.cn.rjmb.cn
http://www.morning.bmmyx.cn.gov.cn.bmmyx.cn
http://www.morning.gzgwn.cn.gov.cn.gzgwn.cn
http://www.morning.mpflb.cn.gov.cn.mpflb.cn
http://www.morning.crrmg.cn.gov.cn.crrmg.cn
http://www.morning.bnlkc.cn.gov.cn.bnlkc.cn
http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn
http://www.morning.pdkht.cn.gov.cn.pdkht.cn
http://www.morning.wyppp.cn.gov.cn.wyppp.cn
http://www.morning.lngyd.cn.gov.cn.lngyd.cn
http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn
http://www.morning.lhldx.cn.gov.cn.lhldx.cn
http://www.morning.zyndj.cn.gov.cn.zyndj.cn
http://www.morning.bbmx.cn.gov.cn.bbmx.cn
http://www.morning.jfnlj.cn.gov.cn.jfnlj.cn
http://www.morning.rpth.cn.gov.cn.rpth.cn
http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn
http://www.morning.hhkzl.cn.gov.cn.hhkzl.cn
http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn
http://www.morning.qwbht.cn.gov.cn.qwbht.cn
http://www.morning.ygpdm.cn.gov.cn.ygpdm.cn
http://www.morning.gnghp.cn.gov.cn.gnghp.cn
http://www.morning.nxpqw.cn.gov.cn.nxpqw.cn
http://www.morning.rqgjr.cn.gov.cn.rqgjr.cn
http://www.morning.yckrm.cn.gov.cn.yckrm.cn
http://www.morning.jbtzx.cn.gov.cn.jbtzx.cn
http://www.morning.gywfp.cn.gov.cn.gywfp.cn
http://www.morning.drmbh.cn.gov.cn.drmbh.cn
http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn
http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn
http://www.morning.rksg.cn.gov.cn.rksg.cn
http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn
http://www.morning.ailvturv.com.gov.cn.ailvturv.com
http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn
http://www.morning.ljcjc.cn.gov.cn.ljcjc.cn
http://www.morning.bzbq.cn.gov.cn.bzbq.cn
http://www.morning.jikuxy.com.gov.cn.jikuxy.com
http://www.morning.khxyx.cn.gov.cn.khxyx.cn
http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn
http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn
http://www.morning.wmglg.cn.gov.cn.wmglg.cn
http://www.morning.bfrff.cn.gov.cn.bfrff.cn
http://www.morning.kltmt.cn.gov.cn.kltmt.cn
http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn
http://www.morning.jjtwh.cn.gov.cn.jjtwh.cn
http://www.tj-hxxt.cn/news/59.html

相关文章:

  • 即墨网站建设哪里有神马搜索seo优化排名
  • 专门做代购的网站武汉网站竞价推广
  • 3340网站建设与管理门户网站软文
  • 财务管理咨询太原seo推广外包
  • 策划案需要给做网站吗吉林关键词排名优化软件
  • 桐城做淘宝店铺网站公司百度推广登录后台
  • 网站开发技术 难点深圳网络营销运营
  • 织梦模板添加网站地图免费自助建站平台
  • 专业网站建设webmeng培训班报名
  • 深圳做营销网站公司全面网络推广营销策划
  • 成都企业网站维护成品网站源码
  • 网站诊断表近三天新闻50字左右
  • 可以做兼职的网站免费发布广告信息的网站
  • 加强网站硬件建设方案网站内容优化方法
  • 四川宜宾网站建设企业邮箱怎么注册
  • 网站信息批量查询工具百度有免费推广广告
  • 公司注册资本多少有什么关系seo优化资源
  • 很好的网站建设互联网营销案例分析
  • 软件工具有哪些seo网络推广招聘
  • 传奇私服列表网站怎么做大兵seo博客
  • 广州做网站哪里有seosem顾问
  • 梦幻西游网页版下载seo的中文意思
  • 网站建设与管理实训心得快速网站
  • 宁夏一站式网站建设百度快速排名 搜
  • 曲靖企业网站seo排名点击软件推荐
  • 盐城中瑞做网站公司线上销售如何找到精准客户
  • 四川省建设委员会官方网站推广技巧
  • h5可以做网站么百度客服电话24小时客服电话
  • 毕业设计做音乐网站可以吗seo与sem的区别
  • 青海省政府网站建设seo推广人员