如何使用
size()
函数而不是 sizeof()
来获取已声明数组中的元素数量?
我通过使用
sizeof()
、begin()
和 end()
函数做到了这一点,但是 size()
函数怎么样?
#include <iostream>
using namespace std;
int main()
{
int nums[] = {10, 20, 30, 40, 20, 50};
// Method 1
cout << sizeof(nums) / sizeof(nums[0]) << "\n";
// Method 2
cout << end(nums) - begin(nums) << "\n";
// Method 3
// ???
return 0;
}
std::size()
,例如:
#include <iostream>
#include <array>
using namespace std;
int main()
{
int nums[] = {10, 20, 30, 40, 20, 50};
// Method 1
cout << sizeof(nums) / sizeof(nums[0]) << "\n";
// Method 2
cout << end(nums) - begin(nums) << "\n";
// Method 3
cout << size(nums) << "\n";
return 0;
}
为了更好地衡量,这里有另一种方法:
#include <array>
std::array<int, 6> nums{10, 20, 30, 40, 20, 50};
std::cout << nums.size() << "\n";