• CMake 13 列表操作


    1 读取列表

    CMake中的列表是以分号(;)分隔的一组字符串,可以通过set指令来定义。

    set(var a b c d e),这就定义了一个列表a;b;c;d;e。

    注意 set(var “a b c d e”)只是定义了一个字符串,并不是列表

    列表的长度

    list(LENGTH <列表> <输出变量>),把列表的长度读取到输出变量

    读取列表中的元素

    list(GET <元素索引> [<元素索引> …] 输出变量)

    元素索引可正可负,当为正数时,从列表开头开始索引,0开始为第1个元素,当为负数时,从列表结尾开始索引,-1为最后一个元素。读取到的元素值放到输出变量

    列表连接成字符串

    list(JOIN <列表> <连接符> <输出变量>)

    把列表的元素连接成一个字符串,元素之间以指定的连接符分隔。

    读取子列表

    list(SUBLIST <列表> <开始索引> <子列表个数> 输出变量)

    从列表的开始索引起读取指定个数作为子列表返回给输出变量。如果子列表个数为-1,或开始索引+子列表个数大于列表的元素数,则从开始索引到列表结尾一起作为子列表返回给输出变量。

    2 搜索列表

    CMake中对列表的搜索可以用下面的指令:

    list(FIND <列表> <值> <输出变量>)

    在列表中搜索给定的值,如果有匹配的,对应索引值存到输出变量中,如果有多个则只取第一个匹配的索引,如果没有匹配的则输出-1.

    3 列表的增 删 改

    增加元素

    list(APPEND <list> [<element> …]) 在列表末尾添加给定元素

    list(PREPEND <list> [<element> …]) 在列表开头添加给定元素

    list(INSERT <list> <index> [<element>…]) 在列表指定索引位置插入元素

    删除元素

    list(REMOVE_ITEM <list> [<value> …]) 删除指定元素

    list(REMOVE_AT <list> [<index> …]) 删除指定索引位置的元素

    list(POP_BACK <list> [<out-var> …]) 删除列表末尾的元素,out-var参数没有的话,只删除一个,否则根据out-var的个数删除相应个数,并把删除的元素赋给out-var

    list(POP_FRONT <list> [<out-var> …]) 同POP_BACK只是删除列表开头元素

    list(REMOVE_DUPLICATES <list>) 删除重复的元素,只保留第一次发现的那个

    按正则表达式保留或去除元素

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

    INCLUDE,匹配regex的元素保留,

    EXCLUDE的话,匹配regex的元素被删除

    4 列表的排序

    倒序指令 list(REVERSE <list>)

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

    compare: STRING,按字母表顺序;FILE_BASENAME,列表中的元素为路径,按路径的基础名排序;NATURAL,按数字顺序排序

    case:SENSITIVE,区别大小写;INSENSITIVE,不区别大小写。

    order指定升序还是降序:ASCENDING,升序,DESCENDING,降序。

    5 列表转换

    list(TRANSFORM <列表> <操作> [<选择器>] [OUTPUT_VARIABLE<输出变量>])

    所有的操作都是对元素进行操作,如果指定输出变量,则源列表不变,操作后的列表赋给输出变量。

    在元素的后面或前面添加指定字符

    list(TRANSFORM <列表> <APPEND|PREPEND> <值> …)

    把元素变为小写或大写

    list(TRANSFORM <列表> <TOLOWER|TOUPPER> <值> …)

    删除元素头尾的空白

    list(TRANSFORM <列表> STRIP …)

  • 相关阅读:
    ros::NodeHandle成员介绍
    ros::NodeHandle成员介绍
    odom_out_and_back.cpp
    odom_out_and_back.cpp
    c++实现ros by example volume1 例子timed_out_and_back功能
    SQL语句进阶
    数据库基础(常用的SQL)
    安装Mysql
    1.初识数据库
    (MYSQL错误解决)本地计算机上的MYSQL服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止
  • 原文地址:https://www.cnblogs.com/merlinzjl/p/13908348.html
Copyright © 2020-2023  润新知