c++ - 如何复制由 vector 组成的数组

标签 c++ arrays vector syntax copy

我有这个 vector 数组, vector 对: vector<pair<int, int> > adj[V];

如何将其复制到另一个变量?

vector<pair<int, int> > adjCopy[V] = adj; //not working;

我还尝试使用 std:copy但显示 vector (可变大小)位于数组内部,因此无法复制。

最佳答案

vector<pair<int, int> > adjCopy[V];
std::copy_n(&adj[0], V, &adjCopy[0]); // or std::copy(&adj[0], &adj[0] + V, &adjCopy[0]);

更惯用的:

vector<pair<int, int> > adjCopy[V];
std::copy_n(begin(adj), V, begin(adjCopy)); // or std::copy(begin(adj), end(adj), begin(adjCopy));

一般情况下,不要使用 C 数组,而使用 std::array

std::array<std::vector<std::pair<int, int> >, V> adj;
auto adjCopy = adj;

关于c++ - 如何复制由 vector 组成的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67514441/

相关文章:

c++ - 使用 vector 的二维数组

c - 打印数组时出现随机字符

c++ - 使用删除-删除范例将元素从一个 vector move 到另一个 vector

c++ - 在 std::vector 中存储 __m256i 仅在 Release模式下产生访问冲突

c++ - 什么时候在 C++ 中创建对象?

c++ - 如何使用 C++ 更改 Windows 10 壁纸?

c++ - 使仿函数成为类成员函数时出现编译错误

C - 将两个字符数组交织在一起时出现异常结果

java - 使用递归而不是循环打印嵌套数组中的元素

vector - 标准化向量?