如何 push_back() C 数组到 std::vector

tuk*_*ket -1 c++ arrays push-back stdvector

这不编译:

vector<int[2]> v;
int p[2] = {1, 2};
v.push_back(p); //< compile error here
Run Code Online (Sandbox Code Playgroud)

https://godbolt.org/z/Kabq8Y

什么是替代方案?我不想使用std::array.

std::vector自身的声明编译。这push_back是不编译的。

JL2*_*210 6

如果您真的不想使用,您可以使用包含数组的结构或包含两个整数的结构std::array

struct coords {
    int x, y;
};

vector<coords> v;
coords c = {1, 2};
v.push_back(c);
Run Code Online (Sandbox Code Playgroud)

或者,如前所述,您可以使用包含数组的结构:

struct coords {
    int x[2];
};

vector<coords> v;
coords c = {1, 2};
v.push_back(c);
Run Code Online (Sandbox Code Playgroud)