简介
- C++ 标准库
C++ 标准库
在 C++ 标准库中并没有名为 <span>
的标准头文件或容器。<span>
并不是 C++ 标准库的一部分,而是从 C++20 开始引入的用于表示连续内存区域的非拥有式引用的类模板。其主要用途是对连续内存块进行引用和操作,而不拥有这些内存。
<span>
通常用于在不拥有内存的情况下表示数据的连续区间,类似于指针和长度的组合。它提供了对这个区间的安全访问,例如遍历、查找等操作,但并不负责内存的生命周期。
C++ 标准库中提供了 std::span
类来实现这个概念,它在 <span>
头文件中定义。
以下是一个简单的示例演示 std::span
的基本用法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <span>
int main() {
int arr[] = {1, 2, 3, 4, 5};
std::span<int> mySpan(arr, 5);
for (const auto& elem : mySpan) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
在此示例中,std::span
被用来引用数组 arr
中的元素。std::span
对这段连续的内存区域提供了一种非拥有式的引用,允许你对这个区间进行安全的遍历和访问操作,但不管理这段内存的生命周期。