2013-03-03 3 views
-4

개체를 목록에 저장합니다. 나는 그들의 방법에 접근하고 싶지만 그것을하는 법을 모르겠습니다. C#에서, 나는 쓸 필요 :목록 항목에 액세스합니다. C + +

for (i = 0; i < myList.count(); i++) 
myList[i].update(); 

을하지만, C++ 작동하지 않습니다 : 당신은 날

list<Bullet> bullets; 

bullets.emplace_back(t_bulletPlayer); 

for (i = 0; i < bullets.size(); i++) 
{ 
    bullets[i].update(); 
} 

도와 드릴까요?

+3

작동하지 않는 실제 C++ 코드를 표시하십시오. – us2012

+0

제공하지 않은 여러 가지 이유로 인해 작동하지 않을 수 있습니다. 실제 오류 란 무엇입니까? 사용자 지정 목록 또는 표준 컨테이너를 사용하고 있습니까? 요소를 어떻게 삽입 했습니까? 요소에 어떻게 접근합니까? – StoryTeller

+0

내 게시물 – Shingo

답변

3

std::list (s)에는 인덱싱 된 액세스 연산자가 없습니다. 자주 색인화 된 액세스가 필요한 경우 std::vector을 대신 입력해야합니다. 목록에있는 모든 개체의 메소드를 호출의 사용 사례의 경우,이 같은 간단한 루프를 사용

또한
for (auto b : bullets) 
    b.update(); 

, emplace_back의 사용이 (그것도 분명히 MSVC를 컴파일하지만, 안 이해가되지 않습니다 ++ 부적합한 것은 emplace_back(T&&)입니다. push_back을 사용하여 유형의 기존 객체를 목록이나 벡터에 추가하십시오.

+2

+1을 업데이트했습니다. 아니면 목록 반복기를 사용하는 법을 배워야합니다. – StoryTeller

관련 문제