我从c ++中的两个不同来源即时获得[可能属于一类的不同字段]。首先,类A的字段在函数#1(getData_Main)中传递,然后在另一个局部函数#2(getVecor_Sublass)中传递字段矢量;函数调用始终是顺序的#1,然后是#2。这是简化的数据结构;
class Subclass {
string str;
string str2;
//a few other fields
};
class Main {
string name;
float somevar;
// few more string fields
vector<Subclass> vecSubclass;
};
我需要保存数据状态,以使其持久化,以便在其他接口中使用,类似于构造vector<Main*>
对象向量。我考虑过要创建一个变量作为主类的索引,并在子类中使用相同的索引并形成某种查找表?但是,如何以最好的可能和更有效的方式做到这一点呢?
[不幸的是,我对现代C ++(11/14)功能和构造不太熟悉,仍然是c ++ 03开发人员),因此考虑在此处发布以获取一些建议,以防在使用lambda或任何其他代码时出现一些有用的代码段较新的功能?
class Main
{
int index; //create from some static variable in function A and pass on to function B
string name;
float somevar;
vector<A> vecA;
};
更新(回答评论)
输入是数据字段,来自java / jni本机函数;
所需的输出是vector<Main>
个对象。
问题#1是一个Java类的输入字段,它具有两个本机函数,因此C ++获得了两组字段(Set#1是Main类的所有字段,而set#2是 vector<Subclass>
包含在Main
类字段中;)。
我只是试图重建对象并尝试其他选项。
当它们进入局部函数中时,除非我们创建类似于用作索引的索引并从这两个来源在C ++中构建矢量对象之类的东西,否则重建vector
对象并不常见。问题2是如何以最佳方式做到这一点。我希望这个问题现在有意义吗?
编辑以添加以下我们试图模仿其功能的Java代码:
public class MainLine {
String name;
String Locator;
Sub[] SubList = new Sub[5];
}
public class Test {
MainLine[] MainLineArray = new MainLine[10000];
// Data coming from some other sources in Java
for (int j=0;j<10000;j++){
test.addMainLine(MainLineArray[j].Locator, MainLineArray[j].name);
for (int k=0;k<5;k++) {
test.addSubList(MainLineArray[j].SubList[k].field1, MainLineArray[j].SubList[k].field2, MainLineArray[j].subList[k].field3,.....);
}
}
}
我从c ++中的两个不同来源即时获得[可能属于一类的不同字段]。首先,类A的字段在函数#1(getData_Main)中传递,然后在...
我想您正在问如何制作一个对象,该对象的字段由在某些函数的多个单独调用中获得的数据组成。通常,要处理这些类型的情况,您需要将标识符或其他内容传递给对象构建函数,以找出哪些值属于哪个对象。