#include <iostream>
#include <vector>
// a "large" user class
class MyClass {
public:
int data;
MyClass(int val) : data(val) {}
};
int main() {
// Initialize vector to MyClass objects
std::vector<MyClass> myClass{1, 2, 3, 4, 5, 6, 7, 8};
// Get const reference to element with index 0
const auto &el = myClass[0];
// Get const references to a range of elements
const unsigned int start = 1, end = 4;
// const auto &elRange = ???
return 0;
}
这个想法是从一个
std::vector<MyClass>
获取一系列元素并将它们存储在另一个std::vector
中,避免复制操作,因为要提取的MyClass
元素将存储为常量引用,即我们只想读取但不要修改它们。
const auto elRange = std::span(&myClass[1], &myClass[4]);