我在一些关于 C++ 的著名书籍中看到——
vector<int> ivec;
for (vector<int>::size_type i = 0; i != 10; ++i) {
ivec.push_back(i);
ivec.push_back(i); // duplicate copies of each number
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么vector<int>::size_type在这里使用。他们没有i与向量的大小进行比较。int目的是在向量中插入 10 ,所以这int i = 0是正确的做法,不是吗?
vector<int>::size_type将为,而 又将为typedef,但这里我们将' 存储在 中。std::size_tunsinged intintvector
请澄清我的理解vector<int>::size_type。在上面的 for 循环中使用它公平吗?
小智 5
基本上,上面的代码是“好的”,因为它可以编译并完成预期的工作,正如其他人所说的那样。
当他们说意图是int在向量中插入十个 s 时,int由于循环的格式化方式,s 被保证为正,因此unsigned int将仅转换为int.
但是,我不认为这是您所说的好习惯 - 大小类型与插入的元素的类型无关 - 大小类型基本上始终是unsigned int. 仅使用intorvalue_type显然会使代码的意图更加清晰。
| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |