本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、获取数组的长度
1、sizeof(a)/sizeof(*a)
C++没有专门求数组长度的内置函数,传统获取 C / C++数组长度的方法是使用 sizeof() 函数:
int a[]={1,2,3,4,5};
cout<<sizeof(a)/sizeof(*a)<<endl; //5
根据编译器会将数组自动转为指针的性质,*a其实就是 a[0],所以 sizeof(a)/sizeof(a[0]) 就是数组长度。
2、end(a)-begin(a)
学习了STL标准库之后,我们也可以用迭代器begin()和end()来计算数组长度,该方法也适用于所有标准库容器。
int a[]={1,2,3,4,5};
cout<<end(a)-begin(a)<<endl; //5
这里需要注意:SLT标准库容器使用迭代器的方法是 v.begin()和 v.end(),但数组不能写成 a.begin()和 a.end(),否则会报错。
二、获取标准库容器的长度
两种方法:
vector<int> v={1,2,3,4,5};
cout<<v.size()<<endl; //5
cout<<v.end()-v.begin()<<endl; //5
标准库容器可以通过size()成员函数获取其长度,也可以通过迭代器 v.end()-v.begin() 计算容器长度。