我正在学习 C++(对 JavaScript 相当有信心),但找不到与 JS array.length;
等效的 C++。我想要一种基于数组长度循环遍历数组的简单方法?
我已经学习了很多教程,但所有接缝都需要在 for 循环中手动声明数组长度(或插入函数)?
下面的代码会出错,添加#include 会导致编译器错误 (DEV++)。
有没有C++或者没有简单调用数组长度的原因?
#include <iostream>
using namespace std;
int main () {
int shoppingList [3] = {1, 2, 3};
for (int i=0; i < shoppingList.size(); i++) {
cout << shoppingList[i] << endl;
}
}
最佳答案
对于像你这样的 C 风格数组,你可以使用 range-based for
loops :
for (int value : shoppingList)
{
std::cout << value << '\n';
}
至于从数组中获取元素的数量,有一个“技巧”:你知道数组本身的大小,你也知道数组中每个元素的大小。这意味着如果将数组的大小除以每个元素的大小,您将得到元素的数量。
简而言之
size_t numberElements = sizeof shoppingList / sizeof shoppingList[0];
重要说明:此“技巧”仅适用于实际数组!一旦一个数组衰减到一个指针(指向它的第一个元素,这经常发生),你剩下的就是指针。没有办法得到它指向的内存大小,不能用这个“技巧”。
正如我在评论中提到的,“最佳”解决方案是使用 std::array
或 std::vector
。
关于c++ - 在 C++ 中循环遍历数组的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52587631/