首页 > 其他分享 >SPICE/SpiceyPy学习记录整理(一)-- SPICE概述

SPICE/SpiceyPy学习记录整理(一)-- SPICE概述

时间:2024-04-07 18:32:31浏览次数:24  
标签:-- SpiceyPy 坐标系 内核 file 参考系 ID SPICE

目录

一、SPICE 概述

二、SPICE内核文件

三、Spice Toolkit Software介绍

四、基础概念

4.1 前言

4.2 时间

4.2.1 概念

4.2.2 时间系统

4.3 参考系

4.3.1 参考系的种类

4.3.2 J2000坐标系与ICRF坐标系的对比

4.4 坐标系

4.5 状态

4.5.1 状态矢量

4.5.2 坐标转换

4.6 像差校正

五、SPICE惯例

5.1 词典

5.2 内核文件命名

5.3 引文使用

5.4 特殊事项

六、IDs和命名

6.1 概述

6.2 对象关联的names和IDs

6.2.1 概述

6.2.2 映射API

6.2.2 添加新的或额外的对象Name-to-ID映射

6.3 参考系关联的names和IDs

6.3.1 概述

6.3.2 映射API

6.4 DSK Surfaces关联的names和IDs


SPICE官方课程学习文档链接:

https://naif.jpl.nasa.gov/naif/tutorials.html

一、SPICE 概述

        NASA 的导航和辅助信息设施 (NAIF,The Navigation and Ancillary Information Facility) ,建立了一个名为“SPICE”的信息系统,以协助 NASA 科学家规划和解释来自太空仪器的科学观测,并协助 NASA 工程师参与进行行星探索任务所需的建模、规划和执行活动。

         SPICE可以计算选定时间的多种观测几何参数,例如行星、卫星、彗星、小行星、飞船的位置和速度;行星、卫星、彗星和小行星的大小、形状和方向;飞船以及它所搭载的众多活动部件的指向。SPICE还能计算指定几何事件发生的事件,例如什么时候发生掩星,什么时候一个航天器的高度在指定的范围内、什么时候仪器可以指向地面的位置等。

        SPICE将各种来源的行星、卫星、彗星、仪器设备的数据打包为辅助数据文件“Kernels”,即内核。通过在个人项目中调用SPICE提供的API即可读取内核中的数据从而计算所需参数,如图1。

图 1 Spice结构示意图

二、SPICE内核文件

        SPICE内核文件包括S(Spacecraft/航天器)、P(Planet/行星)、I(Instrument/仪器设备)、C(Camera-matrix/相机矩阵)、E(Event/事件)五种逻辑组件,每种逻辑组件均对应一个或两个内核:

  • SPK:航天器(S)和行星(P)星历内核;
  • PcK:行星(P)常数内核;
  • IK:仪器(I)内核;
  • CK:相机(C)内核;
  • EK:事件(E)信息内核(ESP(科学观测计划)、ESQ(指令事件顺序)、ENB(研究员记录手册));
  • FK:参考坐标系说明内核(包括固连坐标系和活动坐标系);
  • LSK:闰秒内核;
  • SCLK:航天器时钟内核;
  • DSK:数字形状内核;
  • MK:元内核(一种方便地指定您想要一起使用的实际内核集合的方法)。

三、Spice Toolkit Software介绍

        STS软件包括API接口库、数据文件和文档,官方支持Fortran 77、C、IDL、Matlab和Java等程序语言,同时第三方程序语言还支持Python(SpiceyPy)、Ruby等。

  • SPS可以在不同电脑间进行移植
  • 不定期发布具有足够多新功能的SPS版本
  • STS在发布给用户之前都会被很好的测试
  • 新的工具箱永远可以向后兼容
  • 提供包含完整文档的源代码
  • 所有的数据计算都是用double精度
  • 内核文件可以在不同的电脑之间移植
  • 内核文件是可以分离的,你只需安装你需要的特定内核
  • 所有都是免费的!!!!!!

四、基础概念

4.1 前言

        本节介绍在后面教程中使用到的术语(terminology)和概念(concepts)。部分内容具有一定的难度,仅使用SPICE无需完全理解材料中的内容,但作者仍认为这些属于和概念可能会很有帮助。

4.2 时间

4.2.1 概念

  • Epoch(历元):历元是指某个单一事件发生的时间瞬间,即时刻。
  • Clocks(时钟):时钟用来记录指定事件发生的历元。
  • Time Systems(时间系统):一些达成共识的命名、测量和同步时钟的系统。

4.2.2 时间系统

  • 国际原子时(TAI):TAI以天文上确定的午夜1958年1月1日00:00:00之后的原子秒数来表示。
  • 世界时/天文时(UT):世界时是根据地球自转测定的时间,其定义为太阳两次经过格林尼治天顶子午线经过的时间,其单位为平太阳日,1/86400平太阳日为秒长。根据天文观测直接测定的世界时(UT0)加长引起测站子午圈位置变化的地极异动的修正即可得到对应平均极的子午圈世界时(UT1)。由于地球自转的不均匀性,UT1并不是均匀的时间尺度。
  • 协调世界时(UTC):协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统,即为常用的年月日时分秒时刻。

        理想情况下,UTC午时应该和UT1午时对应,但由于UT1并不是均匀的时间尺度,因此二者并不是同步的,当误差积累超过0.9原子秒时,一次跳秒会增加或减少到UTC天的最后,一般会在6月30日或者12月31日进行。

  • 质心力学时(TDB)/星历时(ET):在SPICE文档中TDB和ET是同义的,是以太阳系质心系框架下定义的一种连续均匀的时间系统,时牛顿运动方程中的独立变量,也是SPICE接口的独立变量,其余TAI十分接近,差异几乎是周期性的。
  • 地球力学时(TDT):地球力学时是地球海平面上的理想时间,TDB和TDT拥有几乎相同的参考历元,大约为J2000时刻。
图 2 时间系统之间的关系

4.3 参考系

        参考系是三个相互正交(可能与时间相关)的单位长度方向向量的有序集合,加上一个称为参考系中心或原点的位置。SPICE文档常常用系(Frame)替代参考系(Reference Frame)。参考系轴的有序集合也称为基。坐标系统规定了在参考系中定位一个点的方法。参考系的中心是一个历元对象,其位置与系的原点重合。在SPICE中,任何惯性系的中心都是太阳系中心。

4.3.1 参考系的种类

  • 惯性系:坐标系中心没有加速度并且坐标系没有转动的参考系,例如J2000坐标系

  • 非惯性系:例如本体固连坐标系、运动系、仪器设备坐标系等

4.3.2 J2000坐标系与ICRF坐标系的对比

        J2000(又名EME2000)的框架定义是基于地球的赤道和春分,由行星运动观测和其他数据确定的,而ICRF框架是由295个河外射电源所采用的位置定义的。

        J2000坐标系与ICRF坐标系几乎是相同的,二者仅有0.1角秒的旋转。在SPICE中任何数据都参考J2000坐标系,同样也可以说为参考ICRF坐标系。出于历史原因,SPICE中只能识别J2000坐标系。在Spice中从J2000坐标系到ICRF坐标系不需要任何转换

4.4 坐标系

        坐标系相关内容见其他任意天体力学或轨道力学相关书籍和资料,此处SPICE并无任何特别,因此不作介绍。

4.5 状态

4.5.1 状态矢量

        一个物体的状态矢量是指其相对另一个物体的位置和速度矢量。在SPICE中,这些物体一般被称之为目标(Target)、观察者(Observer)或者中心(Center)。一个状态矢量总是在TDB/ET时间系统下给定的。在SPK(航天器和行星星历内核)中状态矢量是一个六维矢量,单位分别为km和km/s,其数值是由参考系决定的。

4.5.2 坐标转换

        记坐标系B到坐标系A的坐标轴转换矩阵为L_{AB},坐标系A相对坐标系B的转动角速度为\omega,转动角速度叉乘矩阵记为\omega _{\times },则有状态矢量转换矩阵:

L_{AB}^{6}=\begin{bmatrix} L_{AB} & \mathbf{0}\\ -L_{AB}\ast \omega_{\times } & L_{AB} \end{bmatrix}

同理有坐标系A到坐标系B的状态是矢量转换矩阵:

L_{BA}^{6}=\begin{bmatrix} L_{BA} & \mathbf{0}\\\omega_{\times }\ast L_{BA}& L_{BA} \end{bmatrix}

4.6 像差校正

        在SPICE系统中,像差校正是对状态矢量和时间相关参考系进行的调整,以准确反映从指定观察者在指定时间看到的目标物体的真实状态和姿态。星历中实际的、未经校正的状态称为几何状态。当计算状态矢量时,SPICE用户可以要求几何或像差校正状态矢量。

        像差校正需要准确地回答如下问题:

  • 遥感仪器观测感兴趣的目标时必须指向哪个方向?
  • 在给定的指向方向和观测时间下,遥感仪器观测到的目标体表位置是什么?
  • 为了向指定的目标发射信号,天线必须指向哪个方向?

        为了计算像差校正状态,计算中使用的状态矢量必须全部链接回太阳系质心,具体内容请参考官方文档。

五、SPICE惯例

5.1 词典

  • SPICE Toolkit:指JPL的NAIF团队作为SPICE信息系统的一部分制作的软件的主要集合。
  • Toolkit:Toolkit的Fortran 77版本。
  • SPICELIB:在工具包的Fortran版本中找到的主要用户库。
  • CSPICE:引用整个C工具包,以及在工具包的C版本中找到的主要用户库。
  • Icy:CSPICE 的 IDL 接口。
  • Mice:CSPICE 的 Matlab 接口。
  • Kernel:SPICE数据文件
  • Text kernel(文本内核)

        任何完全由ASCII信息组成的内核类型,每行使用本地操作系统约定结束,包括FK、IK、text PcK、LSK、SCLK、MK。除了mk之外,任何文本内核集都可以组合在一个文件中。但我们当然不建议这样做。

  • Binary kernel(二进制内核)

        任何使用二进制文档格式的内核类型,包括SPK、binary PcK、CK、DBK、DSK。不同的二进制内核类型不能组合在一起。

  • Transfer format kernel(格式转换内核)

        二进制内核的十六进制(ASCII)版本,仅用于在不兼容的计算机之间移植二进制内核。不像在Toolkit版本N0052(2002年1月)中增加的“实时翻译”功能那么重要,但在制作某些操作所需的本机二进制内核方面仍然发挥着作用。

  •  Command file(输入文件)

        许多SPICE应用程序和实用程序要么需要,要么可选地接受包含程序指令,有时也是输入数据的输入文件。同义词包括setup file、preferences file、specifications file、definitions file。

  • Found flag(查找标识符)

        来自SPICE API的布尔输出(True或False),通知您的程序是否找到了与您的请求匹配的数据。

  • Database kernel(数据库内核)

        SPICE内核与Toolkit DBK软件结合,提供了自包含的类似sql的数据库功能。

  • Coverge

        基于时间的内核包含数据的时间段

  • Deprecated software(已弃用的软件)

       工具包代码,虽然仍然可用,但已被更新且可能更好的版本所取代,我们鼓励您不要使用已弃用的SPICE软件,过时的模块在他们的标题中如此标记。

  • Toolkit version naming

        "Nxxxx" e.g. N0066 is Version 66,用于给定工具包版本的所有实例。

  • “Satellite”仅指天然卫星,而不指宇宙飞船
  • "Run-time"发生在执行进程时

同义词

  • Kernel, SPICE file, SPICE kernel, SPICE kernel file
  • Meta-kernel, Furnsh Kernel
  • Module, routine, subroutine, procedure, function, application program interface (API)
  • Application, program, utility, executable
  • Metadata, comments
  • Time, Epoch
  • Encoded SCLK, ticks*
  • Frame, Reference Frame** ( ≠ Coordinate System) (See the "Frames & Coordinate Systems tutorial)
  • Fixed offset frame, constant offset frame, TK frame, class 4 frame
  • Ephemeris, trajectory
  • Rectangular coordinates, Cartesian coordinates**
  • Geodetic, Planetodetic (coordinate system)
  • Ephemeris time (ET), Barycentric Dynamical Time (TDB)
  • Attitude, orientation
  • International Celestial Reference Frame (ICRF) and Earth Mean Equator and Equinox of 2000
  • reference frame (J2000)
  • “Body”, “solar system object,” “ephemeris object”

5.2 内核文件命名

         SPICE对内核文件名施加了一些限制,例如名称中不允许有空白、名称(包括任何路径规范)的最大长度为 255 个字符。NAIF建议符合PDS3标准的名字:"36.3"。下一块列出了在NAIF中SPICE内核文件扩展名的常用用法,并使用了以下一般样式:t - text format(e.g. pck00010.tpc)、b - binary format(e.g. de430.bsp)、x - transfer format(e.g. de430.xsp)。

SPK:
        .bsp        binary SPK file
        .xsp        transfer format SPK file
PcK:
        .tpc        text PcK file        (The most common type PcK)
        .bpc        binary PcK file        (Very few instances of this)
        .xpc        transfer format PcK file
IK:
        .ti        text IK file
FK:
        .tf        text FK file
LSK:
        .tls        text LSK file
CK:
        .bc        binary CK file
        .xc        transfer format CK file
SCLK:

        .tsc        text SCLK file

MK:

         .tm        text meta-kernel file        (“FURNSH kernel”)
DSK:
        .bds        binary DSK file
DBK:
        .bdb        binary database kernel
        .xdb        transfer format database kernel

EK Family

ESP:

        .bep        binary Science Plan EK file

        .xep        transfer format Science Plan EK file

ESQ:

        .bes        binary Sequence Component EK file

        .xes        transfer format Sequence Component EK file

ENB:

        .ten        text Experimenter's Notebook EK file 

这些扩展用于每个Toolkit交付中包含的纯ASCII文档:

.ug        用户指南

.req       “必读”技术参考文档

.txt        用于一些杂项文件

.idx       仅用于排列索引文档

5.3 引文使用

        提醒一下在API参数中引用作为值的字符串的特定语言规则:

  • 在C和Java Native Interface (JNI)代码中使用双引号"This is a string"
  • 在Fortran、IDL、MATLAB和Python代码中使用单引号'This is a string'
  • 无论您使用的是哪种语言版本的SPICE工具箱,在所有SPICE文本内核中,字符串值都用单引号括起来。例如INS-43012_FOV_SHAPE = 'CIRCLE'

5.4 特殊事项

        由于实际和历史的原因,在谈论星历表(SPK)时,冥王星被视为行星,但冥王星在方向和旋转状态(PCK)方面被视为矮行星。

六、IDs和命名

        本节将介绍SPICE中使用的命名/编号方案,包括对象命名/编号、参考系命名/编号、DSK surfaces命名/编号以及方案间的联系、奇怪的情况:SCLK和CK id和一些例子。

6.1 概述

        SPICE使用IDs和names来识别对象、参考系和数字形状内核表面(DSK surfaces),一个ID是一个整数、一个name是一个文本字符串。IDs主要用作SPICE内核中的数据标识符,name主要用作SPICE软件接口(api)中的输入和输出参数,因此用户主要使用的是name。用于为对象和参考系分配IDs和names的方案是独立的,这意味着,通常情况下,SPICE不会根据关联的对象名称和id对参考系名称和id做出任何假设(特殊情况除外)。

6.2 对象关联的names和IDs

6.2.1 概述

        将单个ID分配给以下任何类型的对象:

  • 自然天体——行星、卫星、彗星、小行星
  • 人造物体——航天器、航天器结构、科学仪器、科学仪器内的单个探测器、深网站
  • 在SPICE上下文中可以知道其位置的任何其他点,例如太阳系和行星系统的质心、着陆点、太阳能电池阵角、天线焦点等

        一个或多个名称可以分配给同一个对象,在SPICE软件中,ID和对象名称之间有一个1对多的映射:在输入时,名称被视为同义词,在输出时,将返回最后与ID关联的名称。对象 IDs 在内核中用作数据标识符:

  • 在SPK中 -- 识别天体及其运动中心
  • 在文本PCK中 -- 在与天体关联的关键字中
  • 在DSK中 -- 识别天体
  • 在IKs中 -- 在与仪器相关的关键字中
  • 在FKs中 -- 指定用来计算光时校正的中心,并且用来识别基于PCK坐标系的天体
  • 在FKs中 -- 在动系规范中识别目标和观察者
  • 在SCLK中 -- 通常关键字中使用的SCLK ID是航天器ID的负数(因此是一个正整数)。
  • ...

        对象IDs在一些API中用作输入或输出参数,对象names在高级用户API中用作输入或输出参数,在内核中,对象名不用作数据标识符。

        SPICE 使用的对象name-toID映射可以在两个地方定义:

  1. Toolkit 软件内置:硬编码在源代码中;
  2. 在文本内核中:通常用于定义仪器、其子系统、探测器和航天器结构的name/ID映射,这些赋值通常存在于FKs(例如MER, MEX, JUNO, MSL)中,有时存在于IKs(例如CASSINI, MGS)中,但可以放置在任何文本内核中。在文本内核中定义的映射优先于在Toolkit源代码中定义的映射。

对象IDs和Names的例子:

航天器 

        对于DSN(美国国家航空航天局深空网络)支持的航天器,该数字为DSN航天器ID的负数。

  • -6         'PIONEER-6','P6'
  • -64         'OSIRIS-REX','ORX'

        不幸的是,有时DSN会重复使用一个数字,NAIF不给未被DSN跟踪的航天器分配NAIF IDs,不使用DSN的项目可以自己自由选择NAIF IDs,NAIF建议这些id的取值范围为-9999 -1000。

DSN地面站(399000+地面站数目)

  •  399005        'DSS-05'
  • ...
  • 399066         'DSS-66'

Non-DSN地面站(398000+有些整数0-999)

  • 398990        'NEW_NORCIA'
  • ...

行星

        太阳系质心和太阳

  • 0        'SOLAR SYSTEM BARYCENTER','SSB'
  • 10      'SUN'

        行星系统质心

  • 1        'MERCURY BARYCENTER'
  • 2        'VENUS BARYCENTER'
  • 3        'EARTH MOON BARYCENTER','EMB'
  • 4        'MARS BARYCENTER'
  • ...
  • 9        'PLUTO BARYCENTER'

        只有行星的质量中心

  • 199       'MERCURY'
  • 299       'VENUS'
  • 399       'EARTH'
  • 499       'MARS'
  • ...
  • 999        'PLUTO'

        卫星

  • 301        'MOON'
  • 401        'PHOBOS'
  • 402        'DEIMOS'
  • 501        'IO'
  • ...
  • 901        'CHARON','1978P1'

        其余小行星、彗星、仪器设备等命名和编号样例见官方文档,此处不一一列出。

6.2.2 映射API

 SPICE提供了两个例程来将对象IDs映射到names,反之亦然。

从对象名得到ID:

CALL BODN2C(NAME,ID,FOUND)
CALL BODS2C(NAME,ID,FOUND) // (This is a more general version as compared to BODN2C. Use this one.)

从ID得到对象名:

CALL BODC2N(ID,NAME,FOUND)

如果这些例程返回的FOUND标志返回FALSE,则不能映射输入ID或name.

6.2.2 添加新的或额外的对象Name-to-ID映射

        您可以在任何文本内核中使用赋值来定义新的或额外的Name-to-ID映射。例如,对于一个航天器:

NAIF_BODY_NAME += ('my_spacecrafr_name')
NAIF_BODY_CODE += (my_spacecraft_ID)

详细信息请参见NAIF_IDs必读文档,注意对象名称长度限制为36个字符。

6.3 参考系关联的names和IDs

6.3.1 概述

        将单个ID和单个名称分配给以下任何类型的参考系:惯性系、固连系、航天器和仪器坐标系、地面坐标系和任何其他参考系,其方向可能需要计算观测几何。

 SPICE 使用的参考系name-toID映射可以在两个地方定义:

  1. Toolkit 软件内置:硬编码在源代码中;
  2. 在文本内核中:由KEYWORD=VALUE sets提供

 与对象不同,只有一个名称可以直接与参考系ID相关联,但是,可以通过定义一个具有自己唯一名称和ID的新的零偏移系来建立给定参考系的别名。

坐标系IDs和Names的例子:

惯性系(从1开始的正整数) 

  • 1         'J2000'
  • ...
  • 17         'ECLIPJ2000'
  • ...

固连系(从10001开始的正整数)

  • ...
  • 10012         'IAU_VENUS'
  • 10013         'IAU_EARTH'
  • 10014         'IAU_MARS'
  • ...
  • 10020         'IAU_MOON'
  • ...
  • 13000         'ITRF93'
  • ...

注意:SPICE用户很少需要知道或使用参考系ID;您只使用参考系名称,其余小行星、彗星、仪器设备等的相关参考系命名和编号样例见官方文档,此处不一一列出。

6.3.2 映射API

        SPICE提供了两个例程NAMFRM和FRMNAM来将参考系ID转换(映射)为名称,反之亦然。

        从给定参考系名称得到ID

CALL NAMFRM(NAME,ID)

        从给定ID得到参考系名称

CALL FRMNAM(ID,NAME)

        如果不能映射ID或名称,这些例程分别返回0和一个empty - blank字符串。SPICE还提供CCIFRM例程来获取与给定参考系类和ID类相关联的参考系名成、ID和中心。

CALL CCIFRM(FRCLSS,CLSSID,FRCODE,FRNAME,CENT,FOUND)

这个例程用于确定与CK和二进制PCK文件中使用的参考系ID类相关联的参考系的属性。 注意:SPICE用户很少需要调用这些例程。

6.4 DSK Surfaces关联的names和IDs

        具体参考官方文档,此处不做使用故而省略。

标签:--,SpiceyPy,坐标系,内核,file,参考系,ID,SPICE
From: https://blog.csdn.net/buaaspring/article/details/137375528

相关文章

  • 软件测试最新模型
    软件测试领域随着技术的发展不断演进,新的测试模型和方法不断涌现,以适应不断变化的软件开发需求和提高测试效率。以下是一些最新的软件测试模型:###1.V模型 V模型是瀑布模型的变种,它将测试活动与开发阶段紧密对应。左侧代表开发过程,从需求分析到系统设计、详细设计、编码;右......
  • SPICE/SpiceyPy学习记录整理(三)-- Mice
    目录一、Mice介绍二、Mice使用方法1.1加载内核1.2卸载内核1.3矢量化参数三、示例SPICE官方课程学习文档链接:https://naif.jpl.nasa.gov/naif/tutorials.html一、Mice介绍        Mice是SPICE在MATLAB环境下的扩展工具包。所有Mice调用都是CSPICE函数,......
  • 人工智能和机器学习(AI/ML)在软件测试中的应用
    人工智能和机器学习(AI/ML)在软件测试中的应用正在逐渐改变传统的测试方法,提高测试效率和质量。以下是AI/ML在测试中的一些关键应用:自动化测试AI可以通过机器学习算法自动识别和执行测试用例,大大提高了测试效率7。AI工具能够学习软件的行为和模式,自动生成测试用例和测试脚本,减......
  • SPICE/SpiceyPy学习记录整理(二)-- 工具包安装与介绍
    目录一、获取、安装和引用SPICEToolkit1.1获取SPICEToolkit1.2安装SPICEToolkit1.3检查是否安装成功二、Toolkit介绍2.1工具包架构2.2MatlabToolkit--Mice 2.3Toolkit特点2.4工具包目录结构三、ToolkitLibrary介绍3.1 ToolkitLibrary概述3.2 Tool......
  • UML之用例图和案例分享
    目录一、概述:参与者(Actors):用例(UseCases):关系(Relationships):二、用途:        UML用例图是用于描述系统功能需求和用户与系统之间的交互关系的一种图形化建模工具。它主要用于捕捉系统的功能性需求,以及系统与外部参与者之间的交互行为。一、概述:参与者(Actors):在......
  • Java集合常用类及使用特点
    Java集合框架提供了一组接口和类,用于存储和操作对象集合。它包括常用的数据结构,如列表、集合、映射等,以及对应的实现类。主要接口和类:List(列表):允许重复元素,按照插入顺序存储。常用实现类有ArrayList(查询快、增删慢)和LinkedList(增删快、查询慢)。ArrayListvs.LinkedList:Ar......
  • 分治思想排序(快速排序、归并排序)
    分治:分而治之,即把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并优点:降低时间复杂度:分治法可以将大问题分解为小问题,通过解决小问题来有效解决原问题,从而降低算法的时间复杂......
  • 用HTML5写奥林帕斯奖简介
    一、用VSCODE写奥林帕斯奖简介代码1、以.html为结尾写主要代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0">&......
  • Android Studio学习14——认识Activity的启动模式
    默认情况下都是Standard模式借鉴other借鉴2......
  • C++初级----string类(STL)
    1、标准库中的string1.1、sring介绍    字符串是表示字符序列的类,标准的字符串类提供了对此类对象的支,其接口类似于标准字符容器的接口,但是添加了专门用于操作的单字节字符字符串的设计特性。    string类是使用char,即作为他的字符类型,使用他默认的char_tr......