C ++中的变量创建方法

时间:2015-10-20 15:09:04

标签: c++ vector

嘿伙计们我试图编写一个方法来创建名为y_i的向量,其中我从1开始并以变量名行结束以输入矩阵。 我试图编写它,以便动态地为此代码添加足够的向量。形式向量y_1,向量y_2等的向量

代码如下。我的问题是我做得对吗?我需要一个结构吗?一类?救命!

#include <iostream>
#include <vector>
using namespace std;
int i, rows;
vector<vector< double > >matrix;
void VectorCreation(int rows)
{
    for (i = 1; i <= rows; i++)
    {
        new vector<double>;
    }
}
int main()
{
    cin >> rows;
    VectorCreation(rows);
    return 0;
}

2 个答案:

答案 0 :(得分:1)

您目前使用std::vector在堆上分配new,但不要将其分配给任何内容,以便分配的数据永远丢失。

我不建议使用new,但只是使用堆栈分配:

#include <iostream>
#include <vector>
using namespace std;
int rows;
vector<vector< double > >matrix;
void VectorCreation(int rows)
{
  matrix.resize(rows);
}
int main()
{
    cin >> rows;
    VectorCreation(rows);
    return 0;
}

答案 1 :(得分:1)

首先关闭

void VectorCreation(int rows)
{
    for (i = 1; i <= rows; i++)
    {
        new vector<double>;
    }
}

除了创建内存泄漏之外什么也没做,因为你正在创建新的向量,然后让它们的指针超出范围,因此内存不再可访问但被使用。

其次,如果你想创建一个二维矢量,你可以使用:

std::vector<std::vector<type>> vector_name(num_rows, std::vector<type>(num_cols, default_value));