首页 > 解决方案 > 如何在 C++ 中返回一个所有元素都是 1 的二维向量

问题描述

我是 C++ 新手,我想创建一个所有元素都是 1 的 2d 向量。当我运行我的代码时,编译器什么也不返回!

#include <iostream>
#include <vector>

using namespace std;

vector<vector<double>> ones2d(int m, int n) {
    vector<vector<double>> vect;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++){
            vect[i][j] = 1;
        }
    }
    return vect;
}

int main(){
    vector<vector<double>> vect = ones2d(2,3);
    cout << vect[0][0] << endl;
}enter code here

标签: c++vectorinitialization

解决方案


resize()函数用于将向量的大小调整为指定的大小。我们可以使用它来初始化2d具有给定默认值的向量:

std::vector<std::vector<double>> ones2d(int m, int n)
{
    const int default_value = 1;

    std::vector<std::vector<double>> vect(m);
    for (int i = 0; i < m; i++)
        vect[i].resize(n, default_value);

    return vect;
}

或者您可以使用填充构造函数来初始化2d向量:

std::vector<std::vector<double>> ones2d_2(int m, int n)
{
    const int default_value = 1;

    return std::vector<std::vector<double>>(m, std::vector<double>(n, default_value));
}

我建议使用第二种解决方案。

请在线尝试


推荐阅读