Taille tableau c++
doudou
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je suis vraiment debutante dans la programmation et j'ai unenorme probleme.
je vous explique, je dispose d'un tableau dont je connais pas la taille tout ce que je peux faire c'est de l'initialiser au debut de la fonction apres la taille de ce tableau varie selon un certain parametre, a un certain moment je veux recuperer sa taille pour faire une boucle sur ce tableu et je ne dispose que d'un pointeur sur ce tableau.
j'ai trouvé que je peux utiliser la fonction length mais je ne sais pas trop comment l'utiliser.
sinon j'ai pensé a mettre une case en plus dans mon tableau pour indiquer la fin du tableu mais le probleme est comment remplir le tableau sans y toucher a la derniere case!!
qu'est ce que vous me conseillez et si possible comment faire aussi!!
merci bcp pour votre aide
Doudou
je suis vraiment debutante dans la programmation et j'ai unenorme probleme.
je vous explique, je dispose d'un tableau dont je connais pas la taille tout ce que je peux faire c'est de l'initialiser au debut de la fonction apres la taille de ce tableau varie selon un certain parametre, a un certain moment je veux recuperer sa taille pour faire une boucle sur ce tableu et je ne dispose que d'un pointeur sur ce tableau.
j'ai trouvé que je peux utiliser la fonction length mais je ne sais pas trop comment l'utiliser.
sinon j'ai pensé a mettre une case en plus dans mon tableau pour indiquer la fin du tableu mais le probleme est comment remplir le tableau sans y toucher a la derniere case!!
qu'est ce que vous me conseillez et si possible comment faire aussi!!
merci bcp pour votre aide
Doudou
A voir également:
- Length tableau c
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
1 réponse
bonjour,
tu ferais mieux de laisser tomber les tableaux et d'utiliser les Vector qui sont nettement plus simple à utiliser dans ton cas, voici quelques exemples d'utilisation
tu ferais mieux de laisser tomber les tableaux et d'utiliser les Vector qui sont nettement plus simple à utiliser dans ton cas, voici quelques exemples d'utilisation
#include <iostream> #include <vector> #include <algorithm> #include <numeric> using std::cout; int main() { // créer un tableau d'entiers vide std::vector<int> v; // ajouter l'entier 10 à la fin v.push_back( 10 ); // afficher le premier élément (10) cout << v.front() << '\n'; // afficher le dernier élément (10) cout << v.back() << '\n'; // enlever le dernier élément v.pop_back(); // supprime '10' // le tableau est vide if ( v.empty() ) { cout << "Tout est normal : tableau vide\n"; } // redimensionner le tableau // resize() initialise tous les nouveaux entiers à 0 v.resize( 10 ); // quelle est sa nouvelle taille ? cout << v.size() << '\n'; // affiche 10 // sa taille est de 10 : on peut accéder directement aux // 10 premiers éléments v[ 9 ] = 5; // intitialiser tous les éléments à 100 std::fill( v.begin(), v.end(), 100 ); // vider le tableau v.clear(); // size() == 0 // on va insérer 50 éléments // réserver (allouer) de la place pour au moins 50 éléments v.reserve( 50 ); // véridier que la taille n'a pas bougé (vide) cout << v.size() << '\n'; // capacité du tableau = nombre d'éléments qu'il peut stocker // sans devoir réallouer (modifié grâce à reserve()) cout << v.capacity() << '\n'; // au moins 50, sûrement plus for ( int i = 0; i < 50; ++i ) { // grâce à reserve() on économise de multiples réallocations // du fait que le tableau grossit au fur et à mesure v.push_back( i ); } // afficher la nouvelle taille cout << v.size() << '\n'; // affiche 50 // rechercher l'élément le plus grand (doit être 49) cout << *std::max_element( v.begin(), v.end() ) << '\n'; // tronquer le tableau à 5 éléments v.resize( 5 ); // les trier par ordre croissant std::sort( v.begin(), v.end() ); // parcourir le tableau for ( size_t i = 0, size = v.size(); i < size; ++i ) { // attention : utilisation de l'opérateur [] // les accès ne sont pas vérifiés, on peut déborder ! cout << v[ i ] << '\t'; } cout << '\n';
je me souviens plus de tout mais il me semble qu'il y avait un truc du genre
sizeof(tonTableau)/sizeof(int) et ca te donne le nombre d'elements dans ton tableau (si il s'agit bien d'un tableau de int)
et comment faire pour size si je n'ai qu'un pointeur vers ce tableau.?
Non, si c'est un pointeur sur le tableau comme elle le dit ta solution ne marchera pas.
En plus de cela, le post date de 3 ans, je doute qu'elle lise la solution ^^.