span


1. String Slicing and Manipulation:

std::string str = "Hello world";
std::span<char> substr = str.substr(6, 5); // "world"

2. Array Subsetting:

int arr[] = {1, 2, 3, 4, 5};
std::span<int> subarr = std::span(arr + 1, 3); // {2, 3, 4}

3. Efficient Buffer Passing to Functions:

void write_bytes(std::span<const char> buffer);
char buffer[1024];
write_bytes(std::span(buffer));

4. Memory Management with RAII (Resource Acquisition Is Initialization):

class MyResource {
public:
  MyResource(std::span<char> data) : data_(data) {}
  ~MyResource() { data_.clear(); }

private:
  std::span<char> data_;
};

5. Iterating over a Sequence:

6. Sorting:

7. Searching:

8. String Comparison:

9. Container Conversion:

10. Copying Data:

11. Filling a Span:

12. Byte Manipulation:

13. Bitwise Operations:

14. Transposing a Matrix:

15. Creating a Custom View:

16. View Transformation:

17. Combining Views:

18. Zip Ranges:

19. Partitioning a Span:

20. Stripping Delimiters:

21. Read-Only View:

22. Splitting a String:

23. Joining a String:

24. Filtering Elements:

25. Transforming Elements:

26. Combining Ranges:

27. Zipping Ranges:

28. Partitioning a Span:

29. Stripping Delimiters:

30. Read-Only View:

31. Splitting a String:

32. Joining a String:

33. Filtering Elements:

34. Transforming Elements:

35. Combining Ranges:

36. Zipping Ranges:

37. Partitioning a Span:

38. Stripping Delimiters:

39. Read-Only View:

40. Splitting a String:

41. Joining a String:

42. Filtering Elements:

43. Transforming Elements:

44. Combining Ranges:

45. Zipping Ranges:

46. Partitioning a Span:

47. Stripping Delimiters:

48. Read-Only View:

49. Splitting a String:

50. Joining a String: