ZBLOG

int size = sizeof(a) / sizeof(a[0]); // 或者可以直接用 std::end 和 std::begin 如何使用begin 和end

在 C++ 中,std::begin()std::end() 函数可以用于获取数组或容器的开始和结束迭代器。使用这些函数可以简化计算数组大小或遍历容器的代码。

使用示例

示例 1: 用于普通数组

  1. #include <iostream>
  2. #include <iterator> // std::begin, std::end
  3. int main() {
  4. int a[] = {1, 2, 3, 4, 5};
  5. // 使用 std::begin 和 std::end 获取数组的大小
  6. int size = std::end(a) - std::begin(a);
  7. std::cout << "Size of array a: " << size << std::endl;
  8. // 遍历数组
  9. for (auto it = std::begin(a); it != std::end(a); ++it) {
  10. std::cout << *it << " "; // 解引用迭代器以访问值
  11. }
  12. return 0;
  13. }

示例 2: 用于 STL 容器(如 std::vector

  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator> // std::begin, std::end
  4. int main() {
  5. std::vector<int> vec = {10, 20, 30, 40, 50};
  6. // 获取 vector 的大小
  7. int size = std::distance(std::begin(vec), std::end(vec));
  8. std::cout << "Size of vector vec: " << size << std::endl;
  9. // 遍历 vector
  10. for (auto it = std::begin(vec); it != std::end(vec); ++it) {
  11. std::cout << *it << " ";
  12. }
  13. return 0;
  14. }

输出结果

对于以上两个示例,输出将会是:

  1. Size of array a: 5
  2. 1 2 3 4 5
  3. Size of vector vec: 5
  4. 10 20 30 40 50

小结

  • std::begin(container):返回指向容器第一个元素的迭代器。
  • std::end(container):返回指向容器最后一个元素之后的位置的迭代器。
  • 使用 std:end - std.begin() 可以方便地计算出容器或数组的大小,而无需手动进行类型计算。

这样做不仅使代码更加简洁,还提高了可读性,并且能够很好地处理不同类型的容器。如果你有其他问题或需要更具体的内容,请告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22998

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?