2011-01-20 7 views
0

실패 벡터에지도의
vector<map<vector<string> , vector<string> > > listedParameterMap;삽입지도는 내가 다음에 occues 어디 알 수없는 오류가 두 번째

삽입 : : 방법의 머리에 벡터 선언 : 나는리스트로 (벡터)를 넣어 (런타임에 결정 얼마나 많은) 그들 중 몇 가지가 필요합니다
listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap);

이 절차는 처음에는 정상적으로 작동합니다. 두 번째로 (지도가 올바르게 채워짐) 작동하지 않습니다.
나는 일을 발견 : 나는지도의 크기를 알려주지 : 두 번째 시간 이후 2이다가 크기를 표시
cout << "listedParameterMap " << listedParameterMap.size();
을의 시계을가 1 여전히 말했다. 또한 나에게 유선 내용을 보여줍니다 :

스크린 샷 : alt text

LastFirst defently 제대로 채워 삽입 두 번째지도처럼 보이는 뭔가를 포함해야합니다. 벡터에 대한 동일 : part1_inputpart2_output

코드 :

for (unsigned int index = 0; index < part1_input.size(); index++) { 
     map<vector<string> , vector<string> > parameterMap; 
     parameterMap.insert 
     (pair<vector<string> , vector<string> > (part1_input[index], part2_output[index])); 
     listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap); 
     cout << "listedParameterMap " << listedParameterMap.size(); 
} 

이런 일이 발생하는 이유는 정말 어떤 아이디어 감사하겠습니다 ...



편집 :

"해결책"이 물건을 인쇄하고있었습니다. 조사 식 창에 올바른 값이 표시되지 않습니다. 그건 내 문제가 어딘가에서 발생했음을 의미합니다. 그러나 여기에 anwsered입니다. 어떻게 도와 줘서 고마워!

+7

"작동하지 않음"을 정의하십시오. –

+2

또한 typedef를 사용해보십시오! –

+0

그림을보세요 ... 물어보기 전에 -1을 주면 저를 도와주지 않습니다! 두 번째 항목 ('마지막')이 아닌 것처럼 보일 수 있습니다 ('처음'과 비슷 함) – Beasly

답변

1

내가보기에 당신이보아야한다고 생각하는 것을보기 위해 당신이 당신의 콜렉션에서 어떤 것을 출력하는 시험을보고 싶습니다. 실제로 적절한 단위 테스트를 작성하지 않는 이유는 무엇입니까?

값별로 컬렉션을 많이 전달하고 있습니다. 이것은 상당히 비쌀 수 있지만 추가로, 실제로 업데이트하고 있다고 생각하는 것을 복사 한 다음 원본에서 결과를 보지 못하는 무언가를 업데이트하고있을 수 있습니다.

특히 최적화 된 빌드를 실행하는 경우에는 Visual Studio의 "감시"창에서 값에 너무 많은주의를 기울이지 않을 것입니다.

+0

나는 이미 그것 위에있다. ... – Beasly

+0

그것은 올바르게있는 것처럼 보인다. 나는이 목록 **을 사용하면서 왜 프로그램이 충돌하는지 이해하지 못한다. 시계가 제대로 채워지지 않았기 때문에 나는 생각했다. 나는 계속 볼거야. 내가 그것을 찾지 못하면 나는 새로운 질문을 열 것이다. 고맙습니다! – Beasly

관련 문제