gpt4 book ai didi

c++ - 正确使用 vector::size_type

转载 作者:太空宇宙 更新时间:2023-11-04 15:12:18 25 4
gpt4 key购买 nike

我在一些非常有名的 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

}

我想知道为什么 vector<int>::size_type在这里使用。他们不是比较i与 vector 的大小。目的是插入 10 int在 vector ,所以 int i = 0这样做是正确的,不是吗?

vector<int>::size_type将是 typedef对于 std::size_t这反过来会是unsinged int ,但我们在这里存储 intvector 中.

请澄清我对vector<int>::size_type的理解.在上面的 for 循环中使用它是否公平?

最佳答案

基本上,正如其他人所说,从编译和完成预期工作的意义上说,上面的代码是“好的”。

当他们说意图是在 vector 中插入十个 int 时,int 保证是正的,因为循环是如何格式化的,所以 unsigned int 只会转换为 int

但是,我不认为这是您所说的好做法 - 大小类型与插入元素的类型无关 - 大小类型基本上始终是 unsigned int .仅使用 intvalue_type 显然会使代码的意图更加清晰。

关于c++ - 正确使用 vector<int>::size_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com