2013-03-16 9 views
0

Comment puis-je déclarer un tel vecteur, quelque chose comme ceci vector<vector<string>>vec(1)(2) pour l'utilisation de vec[0][0] et vec[0][1] sans utiliser les tailles dinamic avec push_back.chaîne de vecteur de vecteur taille fixe

+0

La taille d'un 'std :: vector' peut s'étendre au moment de l'exécution et ne fonctionne pas comme un tableau multidimensionnel. Imbrication de deux vecteurs vous donnerait la liberté d'avoir des sous-vecteurs de différentes tailles pour chaque dimension, ce qui n'est probablement pas ce que vous voulez. Jetez un coup d'œil à [Boost.MultiArray] (http://www.boost.org/doc/libs/1_53_0/libs/multi_array/doc/index.html), peut-être que cela vous aidera. –

Répondre

5
using namespace std; 
array< array< string, 2 >, 1 > vec; 

std::vector est pour les matrices de taille dynamique.
std::array (C++ 11, ou utiliser la bibliothèque Boost) est pour les tableaux de taille fixe.

3
std::vector<std::vector<string>> vec(1, std::vector<string>(2)); 

Ensuite, vous pouvez accéder à vec[0][0] et vec[0][1]. (Vous pouvez changer la taille du vecteur si).