Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C+的层次结构图+;容器成分 有没有已知的C++数据类型和容器层次结构?例如字节由位组成,Int由Char组成,Char是字节字符串是字符的集合_C++_Types - Fatal编程技术网

C+的层次结构图+;容器成分 有没有已知的C++数据类型和容器层次结构?例如字节由位组成,Int由Char组成,Char是字节字符串是字符的集合

C+的层次结构图+;容器成分 有没有已知的C++数据类型和容器层次结构?例如字节由位组成,Int由Char组成,Char是字节字符串是字符的集合,c++,types,C++,Types,我感兴趣的是将数据表拼接在一起,它需要在数据行中存储许多不同的数据类型,如果列表由集合和映射组成,我不愿意选择列表,这是一个多维的向量数组,当我可以选择向量开始时 性能是主要目标,我们相信选择最基本的支持数据的容器将带来更高的性能 我使用的JSON定义文件如下: [{ "Column": "Column1", "StartingPosition": 15, "ColumnWidth": 3, "DataType": "Int" }, { "Column": "Column2"

我感兴趣的是将
数据表
拼接在一起,它需要在
数据行
中存储许多不同的数据类型,如果
列表
集合
映射组成,我不愿意选择
列表
,这是一个多维的
向量数组
,当我可以选择
向量
开始时

性能是主要目标,我们相信选择最基本的支持数据的容器将带来更高的性能

我使用的JSON定义文件如下:

[{
  "Column": "Column1",
  "StartingPosition": 15,
  "ColumnWidth": 3,
  "DataType": "Int"
},
{
  "Column": "Column2",
  "StartingPosition": 19,
  "ColumnWidth": 15,
  "DataType": "String"
},
{
  "Column": "Column3",
  "StartingPosition": 35,
  "ColumnWidth": 15,
  "DataType": "String"
},
{
  "Column": "Column4",
  "StartingPosition": 51,
  "ColumnWidth": 4,
  "DataType": "Double"
}]
解析二进制数据文件。JSON是在运行时读取的,需要创建容器来存储数据。目前,它都解析为一个
向量
,这很有效,但如果我想保留原始数据类型,我需要扩展存储的复杂性,以合并支持多种数据类型的容器。我已经研究了
std::any
元组和异构容器()


我在想,它可能最终会成为一个自定义结构的数组,其中包含每个数据类型,并有一个额外的定义来定义要使用的数据类型,这似乎会消耗额外的内存,如果每个数据单元都必须有一个多类型的嵌套多维数组,我觉得选择正确的开始是很重要的。

类型之间根本没有这样的层次结构。您可以根据您打算在其中执行的操作选择容器类型。除了流库,标准C++没有层次结构。code>int
long
long
都是独立的不同数据类型。您来自Java吗?三个“主要”(我指的是性能最好的)是
std::vector
std::unordered\u set
std::unordered\u map
。这些通常应该是你去的第一件事。一旦您选择了一个,编写逻辑,然后对其进行基准测试。这样你就不会走得太远,直到你看到它将如何真正执行。如果这些都不适合你,那么你需要开始寻找替代方案。也许这将有助于@Alan解决这个问题,因为它太宽泛了,POB或资源请求。如果您正在寻找关于使用哪种数据结构的建议,我会对问题进行编辑,以详细说明您希望如何使用它,然后我们可以为您提供更好、更少固执己见的答案。