【发布时间】:2018-10-15 18:23:13
【问题描述】:
struct st
{
int to, cost;
};
void fun(vector<st>&v1[10])
{
vector<st>v2[10];
v1=v2;
}
int main()
{
vector<st>arr[10];
fun(arr);
}
我想通过引用在函数中传递一个二维向量,并将该向量与该函数中的另一个向量交换。但我收到错误。我不想用对向量来做。我想在这里使用结构。怎么办?
【问题讨论】:
-
你有一个包含 10 个向量的数组。你为什么要混合类型?为什么不是
std::vector<std::vector<st>>? -
直接错误是
vector<st>& v1[10]是一个引用数组。对数组的引用看起来像vector<st> (&v1)[10]。所有这一切都可以通过not首先使用C风格的数组来避免。 -
我同意@CoryKramer:你在这里展示的名义上不是“二维向量”,而是一个混蛋:一维向量的一维数组(逻辑上是二维数据结构)。
标签: c++ function structure 2d-vector