2014-11-13 6 views
0

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

감사합니다. 그러나 문제는 배열에 'append'멤버가 없다는 것입니다. 귀하의 코드를 시도했지만 작동하지 않습니다. – user1436187

+0

위의 링크에서와 같이'Py_Initialize()'와'Py_Finalize()'를 사용해야 할 것 같습니다. – CoryKramer

+0

여전히 오류가 발생합니다 :'error : 'boost :: python :: api :: object_item'에 'append'라는 멤버가 없습니다. array [i] .append (0); ' '오류 : 예상되는 primary-expression before 'int' array [i] .append (0); ' – user1436187

답변

1

당신은 온도에 직접 추가 할 수 있습니다.

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); 
} 

list는 무엇이든 가질 수 있으므로 array [i]로 다시 가져올 때 일반 객체를 다시 가져옵니다. C++에서는 타입을 알아야합니다. 타입 변환을 추가하는 것만으로도 컴파일러를 만족시킬 수 있지만, 다른 것들이 들어갈 수 있다면 위험 할 수 있습니다. Boost python에는 나중에 목록에서 작업해야하는 경우 변환 확인 기능이 있습니다.