Updated:

less than 1 minute read

개요

  • 시퀀스의 첫 번째 요소가 0 위치에 있는 객체의 연속 시퀀스를 참조할 수 있는 객체
  • string_view와 같은 효과 발생
    • ‘int []’와 ‘array’, ‘vector’, …


예제

  • 코드
     #include <array>
     #include <iostream>
     #include <span>
     #include <vector>
        
     using namespace std;
        
     int main() {
     	auto func = [](span<int> s) {
     		cout << s.size() << ", " << s.front() << ", " << s.back() << endl;
        
     		for (const auto &iter : s) {
     			cout << iter << " ";
     		}
     		cout << endl;
        
     		s[1] = 5;
     	};
        
     	int a1[] = {1, 2, 3};
     	func(a1);
     	for (const auto &iter : a1) {
     		cout << iter << " ";
     	}
     	cout << endl;
        
     	cout << "------" << endl;
        
     	array<int, 3> a2 = {1, 2, 3};
     	func(a2);
     	for (const auto &iter : a2) {
     		cout << iter << " ";
     	}
     	cout << endl;
        
     	cout << "------" << endl;
        
     	vector<int> a3 = {1, 2, 3};
     	func(a3);
     	for (const auto &iter : a3) {
     		cout << iter << " ";
     	}
     	cout << endl;
        
     	return 0;
     }
    
  • 실행 결과
     3, 1, 3
     1 2 3
     1 5 3
     ------
     3, 1, 3
     1 2 3
     1 5 3
     ------
     3, 1, 3
     1 2 3
     1 5 3