[C] tableau

Fermé
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 - 30 janv. 2007 à 20:33
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 - 31 janv. 2007 à 10:06
Bonjour

Existe-t-il une fonction qui permette d'ajouter un élément à un tableau à un rang donné?

Merci

3 réponses

thehuy_811 Messages postés 4 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 2 février 2007
30 janv. 2007 à 21:14
en java, tu pe faire, reste a voir ds le javadoc.
sinon, en c++, ya ossi le STL ki te permet d'utiliser les itérator sur les vectors...(jviens de taper un tp dessus^^)
Enfin, en C, je ne c pas, mais la fonction insérer a un indice n'est pas tres dur a écrire kand meme ...lol
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
31 janv. 2007 à 08:38
par défaut : non.
0
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780
31 janv. 2007 à 10:06
Non pour la bonne et simple raison que les éléments sont contigus en mémoire et qu'il faut décaler tout ceux qui se trouvent après le rang ou tu insères, ce qui est lent. La STL (donc en C++) permet effectivement de faire ce genre de manip (std::vector, méthode insert, pas forcément avec un iterator d'ailleurs)
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583

Mais si l'objectif c'est d'insérer souvent des éléments, qui plus est de manière ordonnée, on utilisera avec les STL plutôt des std::set (pas de doublons) ou des std::multiset (doublons autorisés). L'accès et l'insertion se feront alors en O(log(n)) car en fait c'est une structure d'arbre.

Bonne chance
0