首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

为什么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的好处就是使得程序的通用性更强,便于修改、书写方便、可移植
[解决办法]
支持二楼和楼上

热点排行