2014-02-09 42 views
51

如果我有一个NxN矩阵如何在结构上初始化向量的向量?

vector< vector<int> > A; 

我应该如何初始化呢?

我没有成功尝试:

A = new vector(dimension); 

既不:

A = new vector(dimension,vector<int>(dimension)); 
+1

你应该请参阅介绍性书籍。 new返回一个指向它分配的指针(并且在这里不需要)。 – Borgleader

+0

vector > MyMatrix [4] [4]; //作品也是 – Mich

+3

这个问题不是重复的。假设的链接副本用于不同的问题,对此,最佳答案也可以回答此问题,但在搜索此问题时找不到它。 –

回答

103

您使用new进行动态分配。它返回一个指向动态分配对象的指针。

你没有理由使用new,因为A是一个自动变量。

vector<vector<int> > A(dimension, vector<int>(dimension)); 
+0

好的,我发现我的问题。我没有提到我有一个尖锐的结构,它具有该向量。并做你所说的:myStructVble-> A(尺寸,矢量(尺寸)); ,它会引发我“功能不匹配”。 – anat0lius

+3

@LiLou_你必须初始化它的结构的构造函数。或从临时复制到成员:'myStructVble-> A =矢量>(尺寸,矢量(尺寸));'' –

14

像这样::您可以使用它的构造简单地初始化A

#include <vector> 

// ... 

std::vector<std::vector<int>> A(dimension, std::vector<int>(dimension)); 

(前C你需要尖括号之间留下空格+ 11)