C++ c++;结构字段的最后一个元素

C++ c++;结构字段的最后一个元素,c++,set,structure,field,C++,Set,Structure,Field,我有一个结构,但我不知道它的大小(每次都不一样)。我想将此结构的某个字段中的最后一个位置设置为某个值。在伪代码中,我的意思是这样的: structureA.fieldB[end]=cert_值 我在MATLAB中做的,但是我不能在C++中找到合适的语法,你能帮助我吗?< /p> < p>在Matlab,一个数据类型保存键值对,其中“值”可能是不同类型的。在C++中,有一些可用的关键值容器(像集合、map、MultMAP这样的关联容器),但是它们通常存储单个类型的元素。如果我理解正确,你需要的是

我有一个结构,但我不知道它的大小(每次都不一样)。我想将此结构的某个字段中的最后一个位置设置为某个值。在伪代码中,我的意思是这样的: structureA.fieldB[end]=cert_值

我在MATLAB中做的,但是我不能在C++中找到合适的语法,你能帮助我吗?< /p> < p>在Matlab,一个数据类型保存键值对,其中“值”可能是不同类型的。在C++中,有一些可用的关键值容器(像集合、map、MultMAP这样的关联容器),但是它们通常存储单个类型的元素。如果我理解正确,你需要的是

“一”:1

“两个”:[1,2,5]

“三”:“姓名”

这意味着你的结构像一个

在C++中,我听说使用真正不同类型容器的唯一方法是使用,它被接受为

的答案。 如果使用不同类型的元素打包容器,则可以使用容器的end()成员函数获取最后一个元素

在Matlab中,数据类型包含键值对,其中“值”可能是不同的类型。在C++中,有一些可用的关键值容器(像集合、map、MultMAP这样的关联容器),但是它们通常存储单个类型的元素。如果我理解正确,你需要的是

“一”:1

“两个”:[1,2,5]

“三”:“姓名”

这意味着你的结构像一个

在C++中,我听说使用真正不同类型容器的唯一方法是使用,它被接受为

的答案。
如果使用不同类型的元素打包容器,则可以使用容器的end()成员函数获取最后一个元素

您需要sizeof,这将提供数组的大小(以字节为单位)。由于需要最后一个元素的索引,因此必须将该数字除以一个元素的字节数。你最终会得到:

int index_end = sizeof(structureA.fieldB) / sizeof(structureA.fieldB[0]);
structureA.fieldB[index_end] = new_value;

您需要sizeof,这将提供数组的大小(以字节为单位)。由于需要最后一个元素的索引,因此必须将该数字除以一个元素的字节数。你最终会得到:

int index_end = sizeof(structureA.fieldB) / sizeof(structureA.fieldB[0]);
structureA.fieldB[index_end] = new_value;

这个
structureA
是否包含
fieldB
的大小?发布一些代码。你必须知道一些基于其他东西可以决定的东西,因为C++是静态类型的语言!fieldB是如何声明的?它是什么类型?代码段:structureA[0]。fieldB=1.1,structureA[1]。fieldB=1.2,structureA[3]。fieldB=1.3等等,同时structureA[0]。fieldC=15等等,所以structureA是不同字段的数组。我想进入structureA中的最后一个,特别是*.fieldB(比如,float)这个
structureA
是否包含
fieldB
的大小?发布一些代码。你必须知道一些基于其他东西可以决定的东西,因为C++是静态类型的语言!fieldB是如何声明的?它是什么类型?代码段:structureA[0]。fieldB=1.1,structureA[1]。fieldB=1.2,structureA[3]。fieldB=1.3等等,同时structureA[0]。fieldC=15等等,所以structureA是不同字段的数组。我想进入structureA中的最后一个,特别是*.fieldB(比如float)