gpt4 book ai didi

C++使用标准输入的大小初始化数组

转载 作者:行者123 更新时间:2023-11-30 05:06:17 25 4
gpt4 key购买 nike

当我需要在 C++ 中存储相同类型的多个值时,我可以使用 vector 或数组。到目前为止,我主要只使用 vector ,但我听说数组使用起来更快(读取和写入值)。如果这是真的,我想知道如何制作一个具有从标准输入读取的大小的数组。我目前使用这样的东西:

int N;
cin >> N;
vector<int> myVector(N);

我试过:

int N;
cin >> N;
array<int, N> myArray;

但这给了我一个错误,因为:
错误:“N”的值在常量表达式中不可用
我也试过:

int N;
cin >> N;
int myArray[N];

这将编译,但是当我尝试询问这个数组的大小时 (myArray.size()) 以使用 for 循环对其进行迭代时,我得到一个错误:
错误:请求'myArray'中的成员'size',它是非类类型'int [N]'

那么我应该用数组替换 vector 以使我的代码更快吗?如果是这样,我应该怎么做?

最佳答案

N 应该在编译时已知。所以,如果你想使用 array 进行 I/O 操作,你应该指定允许读取的 int 的最大数量。此外,您应该自己跟踪读取整数的数量。

So should I replace vectors with arrays to make my code faster and if so the how should I do it?

不,因为 operator>> 将是您的情况的瓶颈。当 int 的数量未知时,使用 vector 就可以了。

关于C++使用标准输入的大小初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993680/

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