数据类型与形式

DolphinDB C++ API 中支持的数据类型与格式如下:

数据类型

DolphinDB 中类型 DolphinDB 示例数据 底层 C++ 类型 C++ 类型示例数据 C++ API中类型 C++ 原生类型构造 C++ API 类型互相转换示例
数值类型 BOOL false char 0 Bool

ConstantSP data = new Bool(true);

bool value = data->getBool();

CHAR ’a' char 'a' Char

ConstantSP data = new Char('a');

char value = data->getChar();

SHORT 122h short 122 Short

ConstantSP data = new Short(122);

short value = data->getShort();

INT 21 int 21 Int

ConstantSP data = new Int(21);

int value = data->getInt();

LONG 22l long long 22 Long

ConstantSP data = new Long(22);

long long value = data->getLong();

FLOAT 2.1f float 2.1f Float

ConstantSP data = new Float(2.1f);

float value = data->getFloat();

DOUBLE 2.2 double 2.2 Double

ConstantSP data = new Double(2.2);

double value = data->getDouble();

DECIMAL32 decimal32(2.1, 3) int 2100 Decimal32

ConstantSP data = new Decimal32(2, 2);

double value = data->getDouble();

DECIMAL64 decimal64(2.1, 3) long 2100 Decimal64

ConstantSP data = new Decimal64(8, 8);

double value = data->getDouble();

DECIMAL128 decimal128(2.1, 3) int128 2100 Decimal128

ConstantSP data = new Decimal128(18, 18);

double value = data->getDouble();

时间类型 DATE 2013.06.13 int 15869 Date

ConstantSP data = new Date(2013, 6, 13);

int value = data->getInt();

MONTH 2012.06M int 24149 Month

ConstantSP data = new Month(2012, 6);

int value = data->getInt();

TIME 13:30:10.008 int 48610008 Time

ConstantSP data = new Time(13, 30, 10, 8);

int value = data->getInt();

MINUTE 13:30m int 810 Minute

ConstantSP data = new Minute(13, 30);

int value = data->getInt();

SECOND 13:30:10 int 48610 Second

ConstantSP data = new Second(13, 30, 10);

int value = data->getInt();

DATETIME 2012.06.13 13:30:10 int 1339594210 DateTime

ConstantSP data = new DateTime(2012, 6, 13, 13, 30, 10);

int value = data->getInt();

DATEHOUR 2012.06.13T13 int 372109 DateHour

ConstantSP data = new DateHour(2012, 6, 13, 13);

int value = data->getInt();

TIMESTAMP 2012.06.13 13:30:10.008 long long 1339594210008 Timestamp

ConstantSP data = new Timestamp(2012, 6, 13, 13, 30, 10, 8);

long long value = data->getLong();

NANOTIME 13:30:10.008007006 long long 48610008007006 NanoTime

ConstantSP data = new NanoTime(13, 30, 10, 8007006);

long long value = data->getLong();

NANOTIMESTAMP 2012.06.13 13:30:10.008007006 long long 1339594210008007006 NanoTimestamp

ConstantSP data = new NanoTimestamp(2012, 6, 13,13, 30, 10, 8007006);

long long value = data->getLong();

字符串类型 STRING “Hello” std::string “Hello” String

ConstantSP data = new String("Hello");

std::string value = data->getString();

SYMBOL “Hello” - - - -
BLOB “Hello” std::string “Hello” String

ConstantSP data = new String("Hello", true);

std::string value = data->getString();

其它类型 UUID 5d212a78-cc48-e3b1-4235-b4d91473ee87 unsigned char[16] - Uuid

ConstantSP data = new Uuid(true);

std::string value = data->getString();

INT128 e1671797c52e15f763380b45e841ec32 unsigned char[16] - Int128

ConstantSP data = new Int128();

std::string value = data->getString();

IPADDR 192.168.1.13 unsigned char[16] - IPAddr

ConstantSP data = new IPAddr();

std::string value = data->getString();

VOID NULL - - Void

ConstantSP data = new Void();

数据形式

数据形式 描述 DolphinDB 中该形式数据示例
标量 单个变量 5, 1.3, 2012.11.15, `hello
向量 一个向量就是一组有序排列的数据 [1,2,3,4,5,6,7,8,9,10]
数组向量 用于存储可变长度的二维数组 [[1,2,3],[4,5],[6,7,8],[9,10]]
矩阵 一个按照长方阵列排列的标量集合 matrix([1 2 3, 4 5 6]);
集合 一个无序且不重复的数据集合 (2,5)
字典 一种无序的数据结构,用于存储键(Key)和值(Value)之间的映射关系,其中键不能重复 (1->4.5, 2->7.8, 3->4.3)
一组有序排列的向量 -

数据对象

DolphinDB C++ API 中的数据对象包含标量、向量、矩阵、集合、字典和表等,其中:

  • Constant 类是所有类型的基类,所有的数据类型(例如 Int,String)和数据格式(例如 Vector,Table)都直接或间接派生自 Constant。
  • 以 SP 为结尾的类型(例如 ConstantSP,VectorSP)是一个智能指针类型,类似于标准库中的 std::shared_ptr,无需用户手动释放其内存。
  • 由上述两点可知,所有的数据对象都可以存储在 ConstantSP 中,可以根据其提供的接口 getType()getForm()来获取数据具体的类型和格式。
  • API 所有的类以及接口都在命名空间 dolphindb 中。