您的位置:首页 > 编程语言 > C语言/C++

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

2011-07-19 22:47 495 查看
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
}

(转帖王杰的帖子)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: