나는 두 개의 std::list
을 가지며, 각각 하나의 위치 벡터는 m_Pos
입니다. 나는 std::list
에 초보자이고, 나는이 두 목록의 각 색인 사이의 거리를 계산하여 배열에 저장하려고합니다. 이것은 내가 한 일입니다. 정확한 방법인지 알지 못합니다.두 개의 표준 사이의 거리 :: List
문제는 거리가 순서대로 정렬되어 있지 않은데, 예를 들어 위치가 현재 위치와 현재 위치 사이에 distane을 저장하려고합니다. I 그들 사이 나중에 연관시킬 수 있도록 I 말하도록 Aprev, Bcurrent, Bprev는 디렉터리 벡터의 순서로 저장 될 디렉토리 [0] Acurr 사이의 거리 Aprev..etc
if(objs.size() == m_prev_objs.size())
{
std::vector<Vec2f> dir;
std::list<Obj>::iterator prevIter = m_prev_objs.begin();
std::list<Obj>::iterator currIter = objs.begin();
// Vec2f dis = currIter->m_Pos - prevIter->m_Pos;
for (std::list<Obj>::iterator currIter = objs.begin(); currIter != objs.end(); ++currIter)
{
dir.push_back(currIter->m_Pos - prevIter->m_Pos);
}
prevIter++;
}
그것은 때때로 출력합니다 중간에 펑키 루프를 제외하고 좋아 보이는
http://en.cppreference.com/w/cpp/algorithm/transform
은'' "fdfdfd". 코드에서 무엇을하고 싶습니까? 그러면 코드가 원하는 것과 다른 점이 무엇입니까? –코드는 당신이 기술 한 것을 수행해야합니다 (이미'prevIter! = end()'에 대한 체크는 중복되어 있습니다, 왜냐하면 당신은 이미 두리스트가 같은 크기인지 확인했기 때문입니다). 그것을 컴파일하고, 실행하고, 예상되는 결과를 제공합니까? 그렇다면 질문은 무엇입니까? 그렇지 않다면 정확히 무엇이 잘못 될까요? –
문제는 거리가 순서대로 정렬되어 있지 않은 dir 벡터입니다. 예를 들어, 위치 Acurrent와 Aprev, Bcurrent, Bprev 사이에 Distane을 저장하여 dir 벡터에 순서대로 저장하여 나중에 상관시킬 수 있습니다. 그들 사이에, 내가 dir [0]이 Acurr, Aprev ... 사이의 거리라고 말하도록 –