size_type도 unsigned int 기호 학습

836 단어
먼저 코드를 넣고 프로그램의 출력 결과를 보니 매우 뜻밖이다.
vector<int> array;
	array.push_back(1);
	array.push_back(2);
	array.push_back(3);

	for (vector<int>::size_type i= array.size()-1;i>=0;--i)
	{
		
		cout <<array[i] <<endl;
	}

console 인터페이스가 계속 갱신됩니다. 멈추지 않고 강제로 종료됩니다.도대체 무슨 이유일까?
따라서 추적 출력을 추가하고 다음 코드를 보십시오.
4
vector<int> array;
	array.push_back(1);
	array.push_back(2);
	array.push_back(3);

	for (vector<int>::size_type i= array.size()-1;i>=0;--i)
	{
		cout << i<<endl;
		cout <<array[i] <<endl;
		getchar();
	}
i부터 0까지 -1까지만 발견되었는데 큰 4294967295로 변했다. msdn 도움말을 보면size 발견type은 unsigned입니다. 즉, -1이 되면 자동으로 정수로 변합니다.
아이고, 기초가 늙지 않았군요. 어떻게 수정할까요? 하나는iterator로 옮겨다니고, 두 번째는 i의 변수 형식을 int로 수정하면 됩니다.

좋은 웹페이지 즐겨찾기