ZBLOG

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

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

使用示例

示例 1: 用于普通数组

#include <iostream>
#include <iterator> // std::begin, std::end

int main() {
    int a[] = {1, 2, 3, 4, 5};

    // 使用 std::begin 和 std::end 获取数组的大小
    int size = std::end(a) - std::begin(a);

    std::cout << "Size of array a: " << size << std::endl;

    // 遍历数组
    for (auto it = std::begin(a); it != std::end(a); ++it) {
        std::cout << *it << " "; // 解引用迭代器以访问值
    }

    return 0;
}

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

#include <iostream>
#include <vector>
#include <iterator> // std::begin, std::end

int main() {
    std::vector<int> vec = {10, 20, 30, 40, 50};

    // 获取 vector 的大小
    int size = std::distance(std::begin(vec), std::end(vec));

    std::cout << "Size of vector vec: " << size << std::endl;

    // 遍历 vector
    for (auto it = std::begin(vec); it != std::end(vec); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}

输出结果

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

Size of array a: 5
1 2 3 4 5 
Size of vector vec: 5
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

注册

已经有帐号?