gpt4 book ai didi

c++ - 将一维数组转换为二维 vector C++

转载 作者:行者123 更新时间:2023-11-28 03:34:55 26 4
gpt4 key购买 nike

谁能帮我写一个将 ID 数组转换为 2D vector 的逻辑。

有点像

int array[] = {1, 4, 5, 7, 9, 3}; // dynamic array
vector <vector int> ex;

我现在如何将数组中的值放在 ex 中......以便它形成 2 个 vector ,每个 vector 包含 3 个值?

我已经搜索了没有用的帮助,并且自己尝试如下:

for(int i=0; i<2; i++)
{
rowTemp_ex.assign(array, array+3));
ex.push_back(rowTemp_ex);
rowTemp_ex.erase(rowTemp_ex.begin() , rowTemp_ex.end());
}

最佳答案

首先,计算将有多少行 vector 。如果每个元素都包含三个元素,则总和为数组大小除以 3。

template <typename T, std::size_t N>
std::size_t size(T(&)[N]) { return N; }

int number_of_rows = size(array) / 3;

现在用该数量的行 vector 创建一个 vector ,每个行 vector 包含三个元素:

std::vector<std::vector<int> > v(number_of_rows, std::vector<int>(3));

然后遍历原始数组并使用整数除法和取余运算填充结果的每个单元格:

for(int i = 0; i < size(array); ++i) {
v[i / 3][i % 3] = array[i];
}

关于c++ - 将一维数组转换为二维 vector C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11223938/

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