최대 1 분 소요

개요

  • 시퀀스의 첫 번째 요소가 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