gpt4 book ai didi

c++ - std::vector::assign 等效于 QVector

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:26 26 4
gpt4 key购买 nike

我有一个 C 风格的数组,我想将它分配给一个 QVector。如果我使用 std::vector,我会使用 assign():

int arr[] = { 1, 2, 3, 4, 5 };
std::vector<int> v;
v.assign(arr, arr + sizeof(arr)/sizeof(int));

但对于 QVector,我找不到类似的 assign() 方法,或任何接受范围的构造函数。

我已经编写了一个 for 循环来执行此操作,但令我惊讶的是没有这样一个基本函数,真的是这样吗,或者是否有等效的函数?

最佳答案

您可以使用 Qt 的 qCopy() :

int arr[] = { 1, 2, 3, 4, 5 };
QVector<int> v(5);
qCopy(arr, arr+5, v.begin());

当然,您也可以使用 std::copy()

int arr[] = { 1, 2, 3, 4, 5 };
QVector<int> v(5);
std::copy_n( &arr, 5, v.begin() );
// or more general:
QVector<int> v2;
std::copy(std::begin(arr), std::end(arr), std::back_inserter(v2));
// without begin/end
std::copy(arr, arr + 5, std::back_inserter(v2));

关于c++ - std::vector::assign 等效于 QVector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16559655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com