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
}
(转帖王杰的帖子)
注意,任何存储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/C++】02:string::size_type ||vector
- c++中有关size_type的问题
- [UE4]C++设置AnimInstance的相关问题
- ISO C++forbids declaration of 'SystemSetDialog' with no type的问题解决
- C++技术问题总结-第6篇 STL迭代器相关
- 微软企业库中数据库访问代码问题(System.InvalidOperationException: Parameter '@FileContent' exceeds the size limit for the sql_variant datatype.)
- 建了一个"symbina 技术"邮件列表,欢迎大加入到这个群,讨论symbian C++相关的技术问题!
- c++: size_type与 size_t一些概念
- string::size_type类型
- C++字符串常量跨平台编译问题(与字符串编码相关)
- c++中size_type和size_t的关系
- 值类型与引用类型(特殊的string) Typeof和GetType() 静态和非静态使用 参数传递 相关知识
- C#调用C++ DLL相关问题
- C++ Primer --- string::size_type
- c++: size_type与 size_t一些概念
- C++ 写leetcode遇到的一些问题总结Reverse Words in a String
- C++中函数传参相关问题
- C/C++中指针和引用之相关问题研究
- missing type specifier - int assumed. Note: C++ does not support default-int,这是什么问题?如何解决呀?
- 实战c++中的string系列--string的替换、查找(一些与路径相关的操作)