2013-06-26 2 views
-1

Java에서 경험이 있지만 C++이 아니며 불행히도 Tizen의 C++에서 작은 응용 프로그램을 작성해야합니다. C++에서 Tizen과 동일한 Java ArrayList

  • 데이터
  • 이상적인 객체가 포인트
  • 되는 ArrayList의 자바 ArrayList를 (또는 LinkedList의) 될 하나의 객체에 저장해야

      어떻게 할 수 있습니다 문제는 내가 다음과 같이 데이터를 저장해야 할 것입니다 C++에서이를 달성 할 수 있을까요? 샘플 선언, 정의 및 get(), add() 예제를 제안 할 수 있습니까? (가) 좋은 방법을 다음과 같은 것은 그렇게 :

      std::vector<std::vector<Tizen::Graphics::Point> > __strokes; 
      
    +1

    저장해야하는 데이터는 무엇이며 저장된 데이터에 어떻게 액세스해야합니까? 세부 사항이 없으면 얻을 수있는 대답은 너무 모호하여 유용하지 않습니다. –

    +0

    포인트를 저장하고 싶습니다. 캔버스에 무언가를 쓸 때마다 onTouchMove 변수에 새 Point를 저장하려고합니다. 새로운 스트로크를 그리기 시작할 때 ArrayList의 새로운 위치로 이동하여 새로운 List List를 생성하고 싶습니다. – Marek

    +1

    ArrayList와 LinkedList는 모두 native 대응입니다 (https : // developer. tizen.org/help/topic/org.tizen.native.appprogramming/html/guide/base/arraylist_linkedlist.htm)을 참조하십시오. – Michael

    답변

    3

    는 표준 라이브러리에서 std::vecto R 클래스를 사용

    표준 : : 벡터 요소가 저장 arrays.The 동적 크기를 캡슐화하는 시퀀스 컨테이너 즉, 반복자를 통해 요소에 액세스 할 수있을뿐만 아니라 요소에 대한 일반 포인터에 대한 오프셋을 사용하여 요소에 액세스 할 수 있습니다. 즉, 벡터 요소에 대한 포인터는 배열 요소에 대한 포인터를 기대하는 함수로 전달 될 수 있습니다.

    +0

    벡터에 요소를 추가 할 수 없습니다. __strokes [0] [0] = currentPosition; 응용 프로그램이 충돌합니다. 디버그 할 때 "변수"창에 다음 정보가 표시됩니다. 대상 요청이 실패했습니다. std :: _ Vector_base , std :: allocator :: _ Tp_alloc_type. – Marek

    +0

    @Marek :'__strokes' (나쁜 이름, BTW - 이중 밑줄을 사용하지 마십시오)를 만들 때 그것은 비어 있습니다. '__strokes.push_back (std :: vector ());'과 같은 것으로 시작하면'__strokes [0] .push_back (mouse_position); '과 같은 것을 사용하여 그 선에 점을 추가 할 수 있습니다. –

    +0

    이전에 시도했지만 작동하지 않았고 이제는 작동했습니다. :) 왜 나쁜 이름입니까? 그것은 Tizen에 대한 공식적인 예에서 사용됩니다 ... – Marek