C++ vector越界的问题

C++ vector越界:
string::size()、length()以及find()系函数使用上的注意事项;

vector<int>s;
if(s.size()-1>0)
{
      
cout<<"1"<<endl;
}

因为size()函数返回是一个无符号数,没有初始话,s.size()=0,而s.size()-1会被转成无符号数18446744073709551615。 。。
length() find()和这类似。切记
改进1:

vector<int>s;
if(int(s.size()-1)>0)
{
      
cout<<"1"<<endl;
}

改进2:

vector<int>s;
int size=s.size()
if(size-1>0)
{
      
cout<<"1"<<endl;
}

你可能感兴趣的:(c++)