web-dev-qa-db-fra.com

Comment initialiser un vecteur de vecteurs sur une structure?

Si j'ai une matrice NxN

vector< vector<int> > A;

Comment dois-je l'initialiser?

J'ai essayé sans succès:

 A = new vector(dimension);

ni:

 A = new vector(dimension,vector<int>(dimension));
53
anat0lius

Vous utilisez new pour effectuer une allocation dynamique. Il retourne un pointeur qui pointe sur l'objet alloué dynamiquement.

Vous n'avez aucune raison d'utiliser new, car A est une variable automatique. Vous pouvez simplement initialiser A en utilisant son constructeur:

vector<vector<int> > A(dimension, vector<int>(dimension));
109
Joseph Mansfield

Comme ça:

#include <vector>

// ...

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

(Pré-C++ 11, vous devez laisser des espaces entre les crochets.)

14
Kerrek SB