在函数中使用QVector的子集

Using a subset of a QVector in a function

本文关键字:QVector 子集 函数      更新时间:2023-10-16

如何将QVector的一部分发送到函数?

QVector<int> a;
a.append(1);
a.append(2);
a.append(3);
a.append(4);
a.append(5);

一些打印函数应该打印"2 3 4",将向量的子集作为参数。

在R中,使用CCD_ 1是可能的。

这有可能吗?

注意:在std::vector中,建议使用insert函数创建一个新变量。这是一个不同于QVector的插入,因此我找不到推荐的方法。

我必须至少写30个字符,这样我才能告诉你,你应该试试:

a.mid(1,3);

您可以随时编写一个函数来为您执行此操作,例如

QVector<int> sub_vector(const QVector<int>& vec, size_t from, size_t to)
{
    QVector<int> subvec;
    for (size_t i = from; i <= to; ++i)
        subvec.append(vec[i]);
    return subvec;
}

是的,但是你必须传递一对迭代器(你想要的范围的开始和结束,你可以使用std::pair只传递一个参数,或者使用一个更清晰的方法,接受两个QVector::iterator参数,这样你就更清楚地知道你想要的函数接受一个范围),或者如果它对你来说更简单(或者你想要的元素在原始QVector中不是连续顺序的),构造另一个只包含所选元素(由john提出的解决方案)。