我想使用boost::python::list
创建一个列表列表。
我试过这段代码,但似乎子列表没有追加功能!
boost::python::list array;
boost::python::list temp;
for (int i = 0; i < max; i++)
{
array.append(temp);
for (int j = 0; j < max; j++)
{
array[i].append(0); //error! array[i] does not have "append" member
}
}
错误讯息:
error: ‘boost::python::api::object_item’ has no member named ‘append’
distArray[i].append(0);
答案 0 :(得分:1)
您可以直接附加到temp。
boost::python::list array;
for (int i = 0; i < max; i++){
boost::python::list temp;
for (int j = 0; j < max; j++){
temp.append(0);
}
array.append(temp);
}
由于列表可以保存任何内容,因此当您将其作为数组[i]拉回时,会返回一个通用对象。在c ++中,您需要知道类型。只需添加一个类型转换就足以满足编译器的要求,但如果还有其他任何东西可以进入,那么风险很大。如果你以后需要在列表上工作,Boost python有转换检查功能。