c++ 获取对一系列 std::vector 元素的 const 引用

问题描述 投票:0回答:1
#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
元素将存储为常量引用,即我们只想读取但不要修改它们。

c++ iterator c++17 range stdvector
1个回答
0
投票

std::跨度

const auto elRange = std::span(&myClass[1], &myClass[4]);
© www.soinside.com 2019 - 2024. All rights reserved.