c++ - 如何在 C++ 中创建一个 int 二维数组 vector

标签 c++ arrays vector multidimensional-array

<分区>

我正在尝试在 C++ 中创建一个 int 二维数组 vector 但是我的以下代码有一些我无法理解为什么的错误?!

vector< int[2][2] > vec;
int a[2][2];
vec.push_back(a);

我不想使用 int ** int 我的 vector (并使用 new 创建一个二维数组)

我知道每个二维数组只有 2 列和行(大小是静态的)

那么有什么方法可以实现该 vector 吗?

我也尝试将一个数组 push_back 到 vecotr,但也没有成功!为什么?

vector< int[2] > vec;
int a[2];
vec.push_back(a);

提前致谢

最佳答案

native 数组不可复制、移动或分配,因此它们不能存储在标准容器中。

但是,包装器 std::array<T,N>是,所以 std::vector<std::array<std::array<int, 2>, 2> >是做你想做的事情的一种方式。

关于c++ - 如何在 C++ 中创建一个 int 二维数组 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21834423/

相关文章:

c++ - 结合 std::string 和 std::vector<char>

c++ - 使用 C++ 模板作为返回类型/变量名

c - 在C中使用指针?使困惑

c++ - 使用共享指针在两个类型模板化类之间进行转换

Javascript 排序自定义比较器函数 - 对已排序的数组进行排序

javascript - 扩展 Angular 服务/工厂以获取日期数组和整数数组,并创建带有键值对的数组

c++ - 给 boost vector 分配几个数字

c++ - slist 优于 vector 的好处?

c++ - 编写一个概念检查库,但在所有基本算术类型上都失​​败了

c++ - 在 std::vector 上运行的多个线程:在这种情况下我需要锁吗?