将2D阵列存储到c++中的2D向量中
storing a 2D array into a 2D vector in c++
假设我有以下格式的2D矩阵。第一行表示尺寸,其余几行包含元素。在这种情况下,它是一个6*6矩阵:
6
1 2 3 4 2 3
3 3 4 5 2 1
4 3 3 1 2 3
5 4 3 6 2 1
3 2 4 3 4 3
2 3 4 1 5 6
通常,我们可以使用以下方法将矩阵存储在向量中:
typedef std::vector<int32_t> vec_1d;
typedef std::vector<vec_1d> vec_2d;
vec_2d array{
{ 1, 2, 3, 4, 2, 3 }
, { 3, 3, 4, 5, 2, 1 }
, { 4, 3, 3, 1, 2, 3 }
, { 5, 4, 3, 6, 2, 1 }
, { 3, 2, 4, 3, 4, 3 }
, { 2, 3, 4, 1, 5, 6 }
};
但是,如果我想把上面显示的格式的数组从一个文本文件中转换成像上面这样的二维向量,我将如何在c++中做到这一点?
这应该有效:
#include "fstream"
#include "vector"
using namespace std;
int main()
{
ifstream fin("file.txt");
int n;
fin >> n;
vector < vector <int> > matrix (n, vector <int>(n));
// or vec_2d matrix (n, vec_1d(n)); with your typedefs
for (auto &i: matrix)
for (auto &j: i)
fin >> j;
}
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 在C++中迭代 2D 容器的最干净方法
- 如何在C++或OpenCV子矩阵中的2D子向量上使用OpenACC?
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 获取 2D 数组 c++ 中的所有数字对
- 如何在 c++ 中格式化和访问 2D 矢量数组中的数据
- 使用指针算法修改函数中的 2D 数组
- 识别 2D 矢量C++中的位置
- 有没有办法使用输入的维度初始化 2d 数组中的所有项目而不循环C++?
- C++中的多维数据集:从 std::vector 的 2D 数据到 std::vector 的 2D 网格的最干净方法?
- 无法将 2D 数组传递到 c++ 中的帮助程序函数中
- 我如何根据 c++ 中的行合并两个 2D 数组
- 在 2D 矢量数组中的特定标头下添加数据
- 如何在 openGL-2D 中绘制不同颜色的线条?
- 确定从点开始的无限直线(单向)是否与 2D 中的线段相交
- 旋转长方体2d中的关节
- 获取地址在数组2d中的位置
- 在2D中的一组点中,以x轴为基底的最大空矩形
- C++、点和线在2D中的位置对舍入误差和位置具有鲁棒性
- 我们如何在openGL中相对于一个点(而不是原点)旋转2d中的图形