 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Olive Guest
|
Posted: Wed Sep 03, 2003 3:58 pm Post subject: SGI STL |
|
|
Bonjour a tous,
Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....
Merci,
Olivier
|
|
| Back to top |
|
 |
Julien Blanc Guest
|
Posted: Wed Sep 03, 2003 4:19 pm Post subject: Re: SGI STL |
|
|
Olive wrote:
| Quote: | Bonjour a tous,
Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....
|
http://www.sgi.com/tech/stl/FAQ.html
--
Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.
|
|
| Back to top |
|
 |
Michaël Cortex Guest
|
Posted: Wed Sep 03, 2003 4:43 pm Post subject: Re: SGI STL |
|
|
Olive wrote:
| Quote: | Bonjour a tous,
Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....
|
Que lui reproches-tu ? As-tu des exemples ? Si tu ne la trouves pas stable,
c'est sûrement que tu l'utilises mal, car beaucoup de gens s'en servent (y
compris moi, mais je ne suis pas une référence ) et c'est
l'implémentation de Dinkumware, réputée comme une des meilleures...
--
<=- Michaël "Cortex" Monerau -=>
|
|
| Back to top |
|
 |
Benoît Sibaud Guest
|
Posted: Thu Sep 04, 2003 7:53 am Post subject: Re: SGI STL |
|
|
Bonjour,
| Quote: | Que lui reproches-tu ? As-tu des exemples ? Si tu ne la trouves pas stable,
c'est sûrement que tu l'utilises mal, car beaucoup de gens s'en servent (y
compris moi, mais je ne suis pas une référence ) et c'est
l'implémentation de Dinkumware, réputée comme une des meilleures...
|
Une question qui me tarabuste depuis quelques temps, sur
std::map::erase, quelle implémentation est la bonne (Dinkumware vs GCC
et SGI) ?
Dinkumware
http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=map.html#map::erase
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
size_type erase(const Key& keyval);
GCC STL v3
http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.3/classstd_1_1map.html#std_1_1mapa23
void erase (iterator __position)
size_type erase (const key_type &__x)
void erase (iterator __first, iterator __last)
SGI STL
http://www.sgi.com/tech/stl/Map.html
void erase(iterator pos)
size_type erase(const key_type& k)
void erase(iterator first, iterator last)
--
Benoît Sibaud
|
|
| Back to top |
|
 |
Michaël Cortex Guest
|
Posted: Thu Sep 04, 2003 8:25 am Post subject: Re: SGI STL |
|
|
Loïc Joly wrote:
| Quote: | Michaël Cortex wrote:
Olive wrote:
Bonjour a tous,
Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....
Que lui reproches-tu ? As-tu des exemples ?
J'en ai eu des exemples avec la version 6.0 de visual C++, mais
ceux-ci ont tous disparus quand j'ai appliqué les patch disponibles
gratuitement sur le site du fournisseur de la bibliothèque
([url]www.dinkumware.com)[/url].
|
En effet, il y avait des problèmes (strings qui se terminaient à ' ',
etc...), mais comme tu l'as dit, les patchs corrigent cela.
Olive, quelle version de visual as-tu ?
--
<=- Michaël "Cortex" Monerau -=>
|
|
| Back to top |
|
 |
Michaël Cortex Guest
|
Posted: Thu Sep 04, 2003 8:27 am Post subject: Re: SGI STL |
|
|
Benoît Sibaud wrote:
| Quote: | Une question qui me tarabuste depuis quelques temps, sur
std::map::erase, quelle implémentation est la bonne (Dinkumware vs GCC
et SGI) ?
|
Je ne saisis pas bien la question... les 3 implémentations ont les mêmes
prototypes de fonctions (mais pas dans le même ordre dans ce que tu donnes).
Où vois-tu la différence ?
--
<=- Michaël "Cortex" Monerau -=>
|
|
| Back to top |
|
 |
Michaël Cortex Guest
|
Posted: Thu Sep 04, 2003 9:48 am Post subject: Re: SGI STL |
|
|
Benoît Sibaud wrote:
| Quote: | Je ne saisis pas bien la question... les 3 implémentations ont les
mêmes prototypes de fonctions (mais pas dans le même ordre dans ce
que tu donnes). Où vois-tu la différence ?
La valeur de retour est un itérateur ou void suivant les cas.
Dinkumware iterator erase(iterator where);
GCC STL v3 void erase(iterator __position)
SGI STL void erase(iterator pos)
Dinkumware iterator erase(iterator first, iterator last);
GCC STL v3 void erase(iterator __first, iterator __last)
SGI STL void erase(iterator first, iterator last)
|
ah... exact. Je n'avais pas vu :S
Je vais voir dans le Stroustup...
p. 487 :
les 2 erase avec les iterateurs retournent void, celle avec const key_type
retourne size_type.
Dinkumware s'est donnée une liberté (volontairement ?) bien bizarre... Quel
iterator on obtient après un erase () ? (end() ?), ou même après un erase
(begin(), begin()+1) ?
--
<=- Michaël "Cortex" Monerau -=>
|
|
| Back to top |
|
 |
Gabriel Dos Reis Guest
|
Posted: Thu Sep 04, 2003 10:35 am Post subject: Re: SGI STL |
|
|
Alain Migeon <agm (AT) dk (DOT) rovsing> writes:
| Quote: | Sinon, petite question. Pourquoi une fonction erase retournerait-elle un
iterator?
|
parce qu'elle peut. ;-)
-- Gaby
|
|
| Back to top |
|
 |
Olive Guest
|
Posted: Thu Sep 04, 2003 11:13 am Post subject: Re: SGI STL |
|
|
MErci ce petit patch a resolus la pluspart de mes pb !
thx a lot.
Michaël Cortex wrote:
| Quote: | Loïc Joly wrote:
Michaël Cortex wrote:
Olive wrote:
Bonjour a tous,
Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....
Que lui reproches-tu ? As-tu des exemples ?
J'en ai eu des exemples avec la version 6.0 de visual C++, mais
ceux-ci ont tous disparus quand j'ai appliqué les patch disponibles
gratuitement sur le site du fournisseur de la bibliothèque
([url]www.dinkumware.com)[/url].
En effet, il y avait des problèmes (strings qui se terminaient à ' ',
etc...), mais comme tu l'as dit, les patchs corrigent cela.
Olive, quelle version de visual as-tu ?
--
=- Michaël "Cortex" Monerau -=
|
|
|
| Back to top |
|
 |
Alain Migeon Guest
|
Posted: Thu Sep 04, 2003 11:19 am Post subject: Re: SGI STL |
|
|
In article <m3llt4q1s9.fsf (AT) uniton (DOT) integrable-solutions.net>,
[email]gdr (AT) integrable-solutions (DOT) net[/email] says...
| Quote: | Alain Migeon <agm (AT) dk (DOT) rovsing> writes:
| Sinon, petite question. Pourquoi une fonction erase retournerait-elle un
| iterator?
parce qu'elle peut.
|
Elle pourrait aussi imprimer : "Adieu, monde cruel...". )
Mais, plus sérieusement, quelle est la valeur retournée?
Une copie de l'iterator effacé?
L'élément suivant dans la liste dans le cas de <vector>?
end ()?
Alain
|
|
| Back to top |
|
 |
Arnaud Debaene Guest
|
Posted: Thu Sep 04, 2003 1:09 pm Post subject: Re: SGI STL |
|
|
Alain Migeon <agm (AT) dk (DOT) rovsing> wrote
| Quote: | Sinon, petite question. Pourquoi une fonction erase retournerait-elle un
iterator?
Est-ce pour renvoyer un iterator pointant sur le end () du map, dans le
cas o on chercherait supprimer un l ment n'appartenant pas
ce map?
|
D'après la doc de Dinkumware :
Return Value :
<snip> a bidirectional iterator that designates the first element
remaining beyond any elements removed, or a pointer to the end of the
map if no such element exists.
Arnaud
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Thu Sep 04, 2003 2:12 pm Post subject: Re: SGI STL |
|
|
"Michaël Cortex" <cort (AT) meloo (DOT) com> wrote
| Quote: | Benoît Sibaud wrote:
Je ne saisis pas bien la question... les 3 implémentations ont les
mêmes prototypes de fonctions (mais pas dans le même ordre dans ce
que tu donnes). Où vois-tu la différence ?
La valeur de retour est un itérateur ou void suivant les cas.
Dinkumware iterator erase(iterator where);
GCC STL v3 void erase(iterator __position)
SGI STL void erase(iterator pos)
Dinkumware iterator erase(iterator first, iterator last);
GCC STL v3 void erase(iterator __first, iterator __last)
SGI STL void erase(iterator first, iterator last)
ah... exact. Je n'avais pas vu :S Je vais voir dans le Stroustup...
p. 487 :
les 2 erase avec les iterateurs retournent void, celle avec const
key_type retourne size_type.
Dinkumware s'est donnée une liberté (volontairement ?) bien
bizarre...
|
Bizarre, je ne sais pas. Il me paraît bien utile, et un peu bizarre que
les fonctions renvoient void dans la norme. Pourquoi est-ce qu'on
renvoie les itérateurs dans les séquences, et non dans les collections
associatives. Il y a au moins une manque d'orthogonalité.
En fait, je crois que Dinkumware a fait la décision avant que la norme a
été fixée. Et ne l'a pas changé par la suite de peur de casser du code
existant. D'autant plus que pratiquement, la seule fois qu'une
application vera la différence, c'est si elle prend l'adresse de la
fonction membre.
| Quote: | Quel iterator on obtient après un erase () ? (end() ?),
|
Tu veux dire, en supposant que la fonction existait ?
| Quote: | ou même après un erase (begin(), begin()+1) ?
|
Dans tous les cas, l'itérateur renvoyé par erase() doit désigner le
premier élément suivant le dernier élément effacer, ou end() s'il n'y a
pas de tel élément. L'idiome consacré est :
Collection::iterator i = c.begin() ;
while ( i != c.end() ) {
if ( condition( *i ) ) {
i = c.erase( i ) ;
} else {
++ i ;
}
}
J'avoue ne pas comprendre pourquoi cette idiome doit marcher avec des
séquences, et non avec des collections associatives.
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
|
|
| Back to top |
|
 |
Gabriel Dos Reis Guest
|
Posted: Thu Sep 04, 2003 6:58 pm Post subject: Re: SGI STL |
|
|
Alain Migeon <agm (AT) dk (DOT) rovsing> writes:
| Quote: | In article <m3llt4q1s9.fsf (AT) uniton (DOT) integrable-solutions.net>,
[email]gdr (AT) integrable-solutions (DOT) net[/email] says...
Alain Migeon <agm (AT) dk (DOT) rovsing> writes:
| Sinon, petite question. Pourquoi une fonction erase retournerait-elleun
| iterator?
parce qu'elle peut. ;-)
Elle pourrait aussi imprimer : "Adieu, monde cruel...". )
|
ça elle peut pas toujours :-)
| Quote: | Mais, plus sérieusement, quelle est la valeur retournée?
|
Je ne sais pas mais , je présume que c'est comme dans le cas des
suites (i.e. list, vector, ..).
| Quote: | Une copie de l'iterator effacé?
|
Non.
| Quote: | L'élément suivant dans la liste dans le cas de <vector>?
|
s'il existe, sinon end().
-- Gaby
|
|
| Back to top |
|
 |
Benoît Sibaud Guest
|
Posted: Fri Sep 12, 2003 5:00 pm Post subject: Re: SGI STL |
|
|
| Quote: | Ce n'est pas ce que j'y vois (heureusement !). Là où tu vois
ça, c'est dans l'explication de ce qui est nécessaire pour le
conteneur utilisable pour instancier stack. Regarde un peu
plus haut et tu verras que stack a bien top/pop/push.
|
Effectivement, je me bats ma coulpe honteusement.
--
Benoît Sibaud
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|