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);
}
我想通过引用在函数中传递一个二维 vector ,并将该 vector 与该函数中的另一个 vector 交换。但我收到错误。我不想用对 vector 来做。我想在这里使用结构。怎么做?
最佳答案
一个主要问题:当传递一个数组作为参数时,真正传递的是一个指针。
使用std::array
很容易解决相反:
void fun(std::array<std::vector<st>, 10>& v1)
{
std::array<std::vector<st>, 10> v2;
// Initialize v2...
v1 = v2;
}
int main()
{
std::array<std::vector<st>, 10> arr;
fun(arr);
}
在上面介绍了std::array
之后,我宁愿推荐返回数组而不是通过引用传递:
std::array<std::vector<st>, 10> fun()
{
std::array<std::vector<st>, 10> v2;
// Initialize v2...
return v2;
}
int main()
{
std::array<std::vector<st>, 10> arr = fun();
}
关于c++ - 如何使用按引用传递 C++ 将二维 vector 传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50188899/