size_type 的陷阱

#include <iostream>
#include <vector>
using namespace std;

int main(int argc, char* argv[])
{
	vector<int> nVec;
	for(int i = 1; i <= 5; i++)
	{
		nVec.push_back(i);
	}

	/* 注意:这里t不会从0变到-1,因为size_type是unsigned类型,t会从0变到一个很大的正数(比如4294967295),
			导致最终会出现越界访问的runtime error.
	*/
	for(vector<int>::size_type t = nVec.size() - 1; t >= 0; --t)
	{
		cout<<nVec[t]<<endl;
	}

	return 0;
}

你可能感兴趣的:(陷阱,size_type)