OVH Cloud OVH Cloud

Redimensionner dynamiquement un tableau

7 réponses
Avatar
R Loriot
Bonjour,

Sous visual c++ 6.0, je recherche un moyen de redimensionner dynamiquement
un tableau.
cad que je déclare:
SFait * m_TabFait;
puis je fais
m_TabFait = new SFait[1];
A part que je ne connais pas au départ la taille (je mets donc 1 par défaut)
et donc j'aimerais pouvoir
le redimensionner (stocker des éléments suivant s'ils répondent ou non à
certains critères), mais pour l'instant c'est sans succès.

Si quelqu'un a une idée.
Merci
Renaud

7 réponses

Avatar
Serge Paccalin
Le mardi 30 novembre 2004 à 08:32, R Loriot a écrit dans
fr.comp.lang.c++ :

Bonjour,

Sous visual c++ 6.0, je recherche un moyen de redimensionner dynamiquement
un tableau.
cad que je déclare:
SFait * m_TabFait;
puis je fais
m_TabFait = new SFait[1];
A part que je ne connais pas au départ la taille (je mets donc 1 par défaut)
et donc j'aimerais pouvoir
le redimensionner (stocker des éléments suivant s'ils répondent ou non à
certains critères), mais pour l'instant c'est sans succès.

Si quelqu'un a une idée.
Merci
Renaud


std::vector<SFait> m_TabFait;

--
___________ 2004-11-30 08:42:09
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763

Avatar
korchkidu
R Loriot wrote:
Bonjour,

Sous visual c++ 6.0, je recherche un moyen de redimensionner dynamiquement
un tableau.
cad que je déclare:
SFait * m_TabFait;
puis je fais
m_TabFait = new SFait[1];
A part que je ne connais pas au départ la taille (je mets donc 1 par défaut)
et donc j'aimerais pouvoir
le redimensionner (stocker des éléments suivant s'ils répondent ou non à
certains critères), mais pour l'instant c'est sans succès.


Utilise les vector de la STL. C'est fait pour ca je pense....

K.

Avatar
R Loriot
"korchkidu" a écrit dans le message de news:
41ac2733$
R Loriot wrote:
Bonjour,

Sous visual c++ 6.0, je recherche un moyen de redimensionner
dynamiquement


un tableau.
cad que je déclare:
SFait * m_TabFait;
puis je fais
m_TabFait = new SFait[1];
A part que je ne connais pas au départ la taille (je mets donc 1 par
défaut)


et donc j'aimerais pouvoir
le redimensionner (stocker des éléments suivant s'ils répondent ou non à
certains critères), mais pour l'instant c'est sans succès.


Utilise les vector de la STL. C'est fait pour ca je pense....

K.


Est-ce que tu peux m'expliquer un peu ce que c'est exactement que la STL et
comment ça fonctionne?
Merci
R.


Avatar
Fabien LE LEZ
On Tue, 30 Nov 2004 10:30:06 +0100, "R Loriot" :

Est-ce que tu peux m'expliquer un peu ce que c'est exactement que la STL et
comment ça fonctionne?


C'est dans les premières pages de n'importe quel bouquin de C++.


--
;-)

Avatar
Andre Heinen
On Tue, 30 Nov 2004 10:30:06 +0100, "R Loriot"
wrote:

"korchkidu" a écrit dans le message de news:
41ac2733$

Utilise les vector de la STL. C'est fait pour ca je pense....


Est-ce que tu peux m'expliquer un peu


#include <vector>
...
std::vector<SFait> m_TabFait;
// maintenant tu as un tableau de SFait, nommé
// m_TabFait, qui ne contient aucun élément
...
m_TabFait.push_back(unSFait);
// ajoute unSFait à la fin du tableau
...
m_TabFait.size();
// renvoie la taille du tableau
...
// Tu peux maintenant accéder au i-ème élément
// comme avec un tableau intégré:
m_TabFait[3] = qqch;
qqch = m_TabFait[3];

Il y a beaucoup d'autres possibilités. Tu peux voir un bouquin,
ou ton aide en ligne, ou chercher un tutoriel sur le web.

La classe SFait doit fournir un constructeur par défaut, un
constructeur de copie, un opérateur d'affectation et un
destructeur avec la sémantique habituelle.

--
Andre Heinen
My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz


Avatar
korchkidu
R Loriot wrote:

Est-ce que tu peux m'expliquer un peu ce que c'est exactement que la STL et
comment ça fonctionne?
Elle fournit des containers. Vector pour des tableau, list pour

des....?...;) et bien plus.

Le mieux c'est quand meme de regarder dans un livre car mine de rien, on
a vite fait de se tromper si on ne fait pas attention.

K.

Avatar
kanze
"R Loriot" wrote in message
news:<41ac3d9e$0$27962$...
"korchkidu" a écrit dans le message de news:
41ac2733$
R Loriot wrote:

Sous visual c++ 6.0, je recherche un moyen de redimensionner
dynamiquement un tableau. cad que je déclare:

SFait * m_TabFait;
puis je fais
m_TabFait = new SFait[1];

A part que je ne connais pas au départ la taille (je mets donc 1
par défaut) et donc j'aimerais pouvoir le redimensionner (stocker
des éléments suivant s'ils répondent ou non à certains critères),
mais pour l'instant c'est sans succès.


Utilise les vector de la STL. C'est fait pour ca je pense....


Est-ce que tu peux m'expliquer un peu ce que c'est exactement que la
STL et comment ça fonctionne?


C'est une partie de la bibliothèque standard de C++, donc, une partie
officelle du langage, que tu dois trouver avec tout compilateur, de même
que les iostream et d'autres.

Les limites exactes de la STL sont un peu flou, et importe peu, mais
grosso modo, tu as des collections, du genre vector, list, map, etc., et
des algorithmes, du genre copy, sort, etc. qui sont conçu pour marcher
ensemble ; tu as en plus une charpente conceptuelle qui permet à créer
tes propres collections (qui marcheront avec les algorithmes standard)
et tes propres algorithmes (qui marcheront avec les collections
standard).

Le tout dépasse de beaucoup la portée d'un article de news. Le mieux, ce
serait que tu lise un bon livre, du genre « Generic Programming and the
STL: Using and Extending the C++ Standard Template Library », par Matt
Austern. Mais déjà un coup d'oeit à Dinkumware
(http://www.dinkumware.com/htm_cpl/index.html) te donnerait quelques
idées sur ce que pourrait faire vector. (Note bien cependant que la site
est une référence, non un tutorial.)

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34