在boostpython中创建列表列表
我想使用在boostpython中创建列表列表,python,c++,boost-python,Python,C++,Boost Python,我想使用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++) {
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
}
}
您可以直接附加到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);
}
boost::python::list数组;
对于(int i=0;i
由于列表可以容纳任何内容,所以当您将其作为数组[i]拉出时,将返回一个泛型对象。在C++中,你需要知道类型。只需添加一个类型转换就足以满足编译器的要求,但如果有任何其他东西可以进入其中,这将是有风险的。如果以后需要处理列表,Boost python具有转换检查功能。谢谢,但问题是数组没有
append
成员。我尝试了你的代码,但它不起作用。看起来你需要使用Py\u Initialize()
和Py\u Finalize()
,就像在上面的链接中一样。但我仍然收到错误:error:'boost::python::api::object\u item'没有名为'append'数组[I]的成员。append(0)代码>错误:“int”数组[i]之前应为主表达式。追加(0)代码>这不是重复的。这个问题是关于list[index]返回一个通用python对象,而不是输入的类型。另一个问题是关于附加到列表中。
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);
}