📜  输入二维向量 c++ (1)

📅  最后修改于: 2023-12-03 14:57:52.981000             🧑  作者: Mango

输入二维向量的实现——C++

在C++中,二维向量可以用vector<vector>来实现。本文介绍如何输入二维向量。

方法一:手动输入

可以先输入行数与列数,再逐一输入每个元素。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int row, col;
    cin >> row >> col;
    vector<vector<int>> vec(row, vector<int>(col));
    for(int i=0; i<row; i++){
        for(int j=0; j<col; j++){
            cin>>vec[i][j];//逐一输入
        }
    }
    return 0;
}
方法二:用字符串输入

可以先将每一行输入到一个字符串中,再用stringstream逐一输入元素。

#include <iostream>
#include <vector>
#include <sstream>

using namespace std;

int main()
{
    int row, col;
    cin >> row >> col;
    vector<vector<int>> vec(row, vector<int>(col));
    for(int i=0; i<row; i++){
        string s;
        getline(cin, s);//输入一行
        stringstream ss(s); 
        for(int j=0; j<col; j++){
            ss>>vec[i][j];//逐一输入
        }
    }
    return 0;
}
方法三:用文件输入

可以将二维向量存储到文件中,然后从文件中读取。

#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

int main()
{
    int row, col;
    cin >> row >> col;
    vector<vector<int>> vec(row, vector<int>(col));
    // 存储到文件
    ofstream output("data.txt");
    for(int i=0; i<row; i++){
        for(int j=0; j<col; j++){
            output << vec[i][j] << " ";
        }
        output << endl;
    }
    output.close();
    // 从文件中读取
    ifstream input("data.txt");
    for(int i=0; i<row; i++){
        for(int j=0; j<col; j++){
            input >> vec[i][j];
        }
    }
    input.close();
    return 0;
}

以上是C++中输入二维向量的实现方法,可以根据实际情况选择合适的方法。