回 帖 发 新 帖 刷新版面

主题:C++问题

for([color=0000FF]vector<int>::size_type ix=0[/color];ix!=ivec.size();++ix)
ivec(ix)=0;
看书的时候看到这段,为什么要写[color=0000FF]vector<int>::size_type ix=0[/color]而不是直接[color=FF0000]int ix=0[/color],
在string标准库里面也是[color=0000FF]string::size_type ix=0[/color]搞不懂是为什么不能用[color=FF0000]int ix=0[/color]代替呢请高手指教 

回复列表 (共2个回复)

沙发

这不很简单嘛,因为它不是int!
当然,也不推荐用 unsigned int,用 size_t 的话比较勉强

板凳

对于封装过的类型,即使我们知道目标类型的实际类型,也还是尽量直接使用该封装类型,避免编译器进行隐式转换可能带来的一些问题

我来回复

您尚未登录,请登录后再回复。点此登录或注册