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
#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';
Il n'existe que deux choses infinies, l'univers et la bêtise humaine...
mais pour l'univers, je n'ai pas de certitude absolue. <Albert Einstein>