C++ 中string::size_type相关问题

 string类类型和许多其他库类型都定义了一些配套类型(companion type)。通过这些配套类型,库类型的使用就能和机器无关(machine-independent)。string::size_type定义为unsigned型,可以保证足够大的存储string对象的长度。

注意,任何存储string的size操作结果的变量必须为string::size_type类型。尤其不能把size的返回值赋给一个int变量。(因为size返回的是一个unsigned类型,而int是signed类型。size能表达的大小是int的2倍)。

string str("some string");
for (string::size_type ix = 0; ix != str.size(); ++ix) //此处如果ix为int类型,应该用<=
{
cout<<str[ix]<<endl;
}


vector<int> ivec;
for(vector<int>::iterator ix = ivec.begin(); ix != ivec.end(); ++ix) 
//此处不该为int 用!=,而不用<=
{
*ix = 0; //将各个元素赋值为0
}

(转帖王杰的帖子)

你可能感兴趣的:(C++ 中string::size_type相关问题)