[C++] span
Updated:
개요
- 시퀀스의 첫 번째 요소가 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