读书人

为什么C++ primer里面大多数用size ty

发布时间: 2012-02-06 15:52:45 作者: rapoo

为什么C++ primer里面大多数用size type计数,而国内大多直接用int 计数?有什么不同?
为什么C++ primer里面大多数用size type计数,而国内大多直接用int 计数?有什么不同?

例如
vector <int> ivec;
for(vector <int> ::size_type ix=0;ix!=ivec.size();++ix)
{...}
或者
string s;
for(string::size_type index=0;index!-s.size();++index)
{...}

而里面这几个计算器,ix,index,C++ primer里都喜欢用size_type,
但其实ix,index都可以用int类型啊,
这里究竟有什么不一样?
安全点?
开销小一点?

[解决办法]
是编程风格问题。国内教材都是垃圾级的编程风格。
size_type在64位cpu上很可能是unsigned long long的。写int的代码就over了。
[解决办法]
《c++ primer》中说的:
许多库类型都定义了配套类型(companion type),通过配套类型,库类型的使用就与机器无关了。
在说通过size()返回string::size_type时还特别提到一点:不要把size的返回值付给一个int变量
[解决办法]
使用size_type的好处就是使得程序的通用性更强,便于修改、书写方便、可移植
[解决办法]
支持二楼和楼上

读书人网 >C++

热点推荐