如何使用int x[row][col];
之类的变量初始化数组
int myArray[7][4] = { {1,2,3,4}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8} };
我想将数组初始化为此=
int myarray({2,3,4},{12,4,5},{2,2,2})
答案 0 :(得分:1)
确切的答案是,您不能像这样初始化数组,即,尽管std::vector
可以为您完成这项工作,但在编译时不同时提供row
和col
。 >
您可以使用以下代码:
#include <iostream>
#include <vector>
void print_vector(std::vector<int> &v) {
std::cout << "{ ";
for (auto &&i : v) {
std::cout << i;
if (&i != &v.back()) {
std::cout << ",";
}
}
std::cout << " }";
}
void print_matrix(std::vector<std::vector<int>> &v) {
std::cout << "{ ";
for (auto &&i : v) {
print_vector(i);
if (&i != &v.back()) {
std::cout << ", ";
}
}
std::cout << " }" << std::endl;
}
int main() {
std::vector<std::vector<int>> v = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
// same as std::vector<std::vector<int>> v({{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}});
print_matrix(v);
// prints { { 1,2,3,4 }, { 5,6,7,8 }, { 9,10,11,12 } } on stdout
}
自从OP在评论中询问他们以来,我已经将print_vector
和print_matrix
包括在内,尽管他们并未对此进行过多考虑。您可以在this thread上获得更好的实现。