gpt4 book ai didi

c++ - vector::size_type 与备选方案

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:34 30 4
gpt4 key购买 nike

我的背景主要是 R、SAS 和 VBA,我正在尝试学习一些 C++。我选择了“Accelerated C++”(Koenig,Moo)作为我关于该主题的第一本书。我在 comp 的理论背景。科学。诚然,它不是最强大的,这也许可以解释为什么我对这些观点感到困惑。

我对一段类似于下面的代码有疑问:

#include <iostream>
#include <vector>

int main() {

double input;
std::vector<double> example_vector;

while (std::cin >> input) {
example_vector.push_back(input);
}

std::vector<double>::size_type vector_size;
vector_size = example_vector.size();

return 0;
}

据我了解,vector_size “足够大”以容纳 example_vector 的大小,无论多大example_vector可能。我不确定我是否理解这意味着什么:是 vector_size (在这种情况下)能够表示大于 long long x; 的整数,所以 std::cout << vector_size;将打印一个不同于 std::cout << x; 的值?怎么/为什么?

最佳答案

这个问题归结为标准不强制 vector<T>::size() 返回什么实际类型方法。不同的实现可能会做出不同的选择。

因此,如果您希望将调用返回的值分配给 size()对于一个变量,你应该为该变量使用什么类型?为了编写可跨不同实现移植的代码,您需要一种命名该类型的方法,并认识到标准库的不同实现可能使用不同类型这一事实。

答案是vector<T>提供您应该使用的类型。这是

vector<T>::size_type

对于 C++,您确实需要了解并习惯的一件事是,该标准确实需要适应不同实现之间的重大差异。

关于c++ - vector<double>::size_type 与备选方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21268381/

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