如果答案非常明显,我深表歉意。 我写了一小段代码,从数组中初始化一个 vector
int arr[] = {1,2,3,4,5};
vector<int> vec = {begin(arr), end(arr)};
for (int i = 0; i < 5; ++i)
cout << vec[i];
代码运行良好,唯一让我烦恼的是必须知道数组大小。 for的第二个参数,
i < 5;
只是看起来有点太简单了,而且在更大的代码段中也不那么准确。有什么方法可以让代码将数组中的元素数推断为整数并使用它而不是自己说明元素的实际数量?在使用大多数数组或 vector 时,我倾向于发现这很烦人。我确信写一些可以为我推断答案的东西会是一个更好的习惯,因为我确信这可能会导致计算错误,因为需要用户输入并且他们输入的元素数量没有限制。
最佳答案
获取int arr[]
的大小, 你可以使用 sizeof(arr) / sizeof(*arr)
.
初始化vector<int>
使用数组中的值,您可以使用:
int arr[] = {1,2,3,4,5};
vector<int> vec (arr, arr + sizeof(arr) / sizeof(*arr) );
要迭代 vector 的所有值,您可以使用(size()
将为您提供 vector 的大小):
for (size_t i = 0; i < vec.size(); ++i)
cout << vec[i];
p.s. 在 C++11 中,您甚至可以使用 range-based for loop :
for (auto elem : vec)
std::cout << elem;
关于c++ - 如何找到数组的大小作为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24709250/