A voir également:
- Tableau /C++
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
5 réponses
tu peut utiliser une list
un truc de se genre
un truc de se genre
// list::assign #include <iostream> #include <list> using namespace std; int main () { list<int> first; list<int> second; first.assign (7,100); // 7 ints with value 100 second.assign (first.begin(),first.end()); // a copy of first int myints[]={1776,7,4}; first.assign (myints,myints+3); // assigning from array cout << "Size of first: " << int (first.size()) << endl; cout << "Size of second: " << int (second.size()) << endl; return 0; }
ya aussi les std::vector , connu aussi sous le noms de tableau dynamique, ils sont du genre tableau, mais leur taille peut changer au cours du programmme.
non ça ne marche pas en C.
j'ai peut-être fait une ou deux petites erreurs.
//à ràjouter au début : #include <vector> std::vector<int> monTableau; for (int i=0; i<10; i++) { monTableau.pushback(5*i); } //monTableau contient la table de 5 (de 0 à 45) monTableau[20] = 3; //ceci donne une erreur car monTableau n'est pas de la bonne taille, il est de taille 10. monTableau.resize(30); monTableau[20] = 3; // valide car monTableau est de taille 30.
j'ai peut-être fait une ou deux petites erreurs.
en C, je crois pas, et je ne sait pas . :( , :ppp
avant in faut inclure le headers
#include <vector>
//On creer notre tableau dynamique.
std::vector <int> Tabl(5);
<int> ceci est le type de tableau,
Tabl, c'est le nom :pp
(5), c'est la taille.
et ben pour les utilisation, voici qulque exemple.
Tabl.push_back(2); //ajoute une case avec la valeur de 2;
Tabl.pop_back(); //enleve une case du tableau.
Tabl.clear();//tout éffacer, reinitialiser a zéro, case = 0, :pp
Tabl.assign(5,3); //recreer le Tabl avec 5 case dont la valeur est 3, donc, c comme, un clear(); et puis 5 push_back(3);
Tabl.resize(2,0); //redimensionner le tableau, ajouter ou enlever les acse qui manque , e les remplaçant par la valeur 0; si notre tableau contient 1 case avec la valeur 8, on ajoute une case , pour arriver a 2 avec la valeur 0,
Ouuuf, c tout, :D
et plein d'autre ....
avant in faut inclure le headers
#include <vector>
//On creer notre tableau dynamique.
std::vector <int> Tabl(5);
<int> ceci est le type de tableau,
Tabl, c'est le nom :pp
(5), c'est la taille.
et ben pour les utilisation, voici qulque exemple.
Tabl.push_back(2); //ajoute une case avec la valeur de 2;
Tabl.pop_back(); //enleve une case du tableau.
Tabl.clear();//tout éffacer, reinitialiser a zéro, case = 0, :pp
Tabl.assign(5,3); //recreer le Tabl avec 5 case dont la valeur est 3, donc, c comme, un clear(); et puis 5 push_back(3);
Tabl.resize(2,0); //redimensionner le tableau, ajouter ou enlever les acse qui manque , e les remplaçant par la valeur 0; si notre tableau contient 1 case avec la valeur 8, on ajoute une case , pour arriver a 2 avec la valeur 0,
Ouuuf, c tout, :D
et plein d'autre ....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oups, je viens de voir un truc : tu voulais un tableau à deux dimensions.
Dans ce cas tu n'as qu'à faire un vector de pointeurs vers d'autres vector. (Un vector de vector ne fonctionnerait pas très bien à cause d'un problème de taille trop variable)
Dans ce cas tu n'as qu'à faire un vector de pointeurs vers d'autres vector. (Un vector de vector ne fonctionnerait pas très bien à cause d'un problème de taille trop variable)
c'est un peu technique.
le type Vector permet de garder un avantage assez important des tableaux en C / C++ : le fait que toutes les données soient à la suite en mémoire.
Tu pourrais faire un vector < vector<int> > par exemple pour stocker un tableau en deux dimensions avec des int. Mais comme touts les éléments sont stockés à la suite en mémoire, le c++ assigne la même taille à tous les éléments.
Ex : tu as 8 vector<int> avec dedans : {1, 2, 3, 4, 5}, {1, 2 , 3, ... 37}, ..., {1, 2, 3, ... 100}.
Le premier est de taille 5, le dernier de taille 100.
Si tu fais un vector< vector<int>> rempli avec ces tableaux, le C++ est obligé de donner une taille fixe pour chacun, donc allouer au moins 100 places pour chaque vector, même si c'est inutile car les autres sont bien plus petits.
Autre problème, si tu ajoutes encore un autre vector<int> dedans encore plus grand, alors le C++ sera obligé de revoir à la hausse la taille qu'il alloue pour chaque élément, et devra recréer l'intégralité du vector< vector<int> > en mémoire, ce qui implique du temps d'exécution et de l'espace mémoire.
le type Vector permet de garder un avantage assez important des tableaux en C / C++ : le fait que toutes les données soient à la suite en mémoire.
Tu pourrais faire un vector < vector<int> > par exemple pour stocker un tableau en deux dimensions avec des int. Mais comme touts les éléments sont stockés à la suite en mémoire, le c++ assigne la même taille à tous les éléments.
Ex : tu as 8 vector<int> avec dedans : {1, 2, 3, 4, 5}, {1, 2 , 3, ... 37}, ..., {1, 2, 3, ... 100}.
Le premier est de taille 5, le dernier de taille 100.
Si tu fais un vector< vector<int>> rempli avec ces tableaux, le C++ est obligé de donner une taille fixe pour chacun, donc allouer au moins 100 places pour chaque vector, même si c'est inutile car les autres sont bien plus petits.
Autre problème, si tu ajoutes encore un autre vector<int> dedans encore plus grand, alors le C++ sera obligé de revoir à la hausse la taille qu'il alloue pour chaque élément, et devra recréer l'intégralité du vector< vector<int> > en mémoire, ce qui implique du temps d'exécution et de l'espace mémoire.
EDIT : Je me suis trompé de lien avant dsl ! j'ai édité ce message
http://www.cplusplus.com/reference/vector/vector/
http://www.cplusplus.com/reference/vector/vector/