我需要复制作为引用传递给构造函数/函数的向量数组。
成员变量获取对传递的向量数组的引用
在以下代码下运行时出现错误表达式:转置指针范围
#define MAX 1001
Constructor( std::vector< int > (&Adj)[MAX])
{
(this->Adj[MAX]) = Adj[MAX];
}
答案 0 :(得分:3)
如果您确实想要固定(编译时)大小为std::vector
的 array ,请使用std::array
#include <array>
#include <vector>
Constructor (const std::array<std::vector<int>, MAX>& rhs)
{
this->Adj = rhs;
}
并将Adj
声明为
std::array<std::vector<int>, MAX> Adj
答案 1 :(得分:1)
您可以使用std::copy
复制数组:
#include <cstddef> // size_t
#include <vector> // std::vector<>
#include <algorithm> // std::copy();
constexpr size_t max{ 3 };
struct foo {
std::vector<int> Adj[max];
foo(std::vector<int> (&values)[max])
{
std::copy(std::begin(values), std::end(values), std::begin(Adj));
}
};
int main()
{
std::vector<int> values[max];
foo f{ values };
}