Files
XCEngine/docs/api/containers/array/begin-end.md

52 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Array::begin() / end()
```cpp
Iterator begin();
Iterator end();
ConstIterator begin() const;
ConstIterator end() const;
```
获取数组的迭代器,用于范围遍历。
**begin()** 返回指向第一个元素的迭代器。如果数组为空,返回值等于 `end()`
**end()** 返回指向"最后一个元素之后"位置的迭代器(哨兵)。这是一个越界位置,不可解引用。
**迭代器类型:** `Iterator = T*`(原始指针),因此支持指针算术运算。
**复杂度:** O(1)
**线程安全:** ❌ 迭代期间不可并发修改数组
**示例:**
```cpp
#include <XCEngine/Containers/Array.h>
XCEngine::Containers::Array<int> arr = {10, 20, 30, 40, 50};
// 范围 for 循环(推荐)
for (int val : arr) {
printf("%d\n", val);
}
// 手动迭代器
for (auto it = arr.begin(); it != arr.end(); ++it) {
printf("%d\n", *it);
}
// 指针算术(因为迭代器就是指针)
int* ptr = arr.begin();
ptr += 2; // 指向第三个元素
*ptr; // 30
// 常量迭代器
for (const auto& val : arr) {
printf("%d\n", val);
}
```
## 相关文档
- [Array 总览](array.md) - 返回类总览