在 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助手提供,问题来源于学员提问