string vs string*

string vs string* - C++ - Programmation

Marsh Posté le 18-09-2007 à 19:51:07    

Salut,
 
 
petite question, surement débile mais je fatigue alors je pose :)
 
 
Généralement il vaut mieux un vector de string ou de string*? dans mon code je traite la plupart du temps les string comme un type primitif mais ce n'est pas le cas. Par contre j'ai lu que ca a tout de même été bien codé pour l'envoie de paramètres ou autres mais au final je me demande ce qu'il vaut mieux:
 
string toto = "tata";
abc.add(toto)
 
 
ou  
 
 
string *toto = new string("tata" );
abc.add(toto)
 
 
avec  
template<T>
void add(t iObject)
{
     vector.push_back(iObject);
}
 
 
Merci


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 18-09-2007 à 19:51:07   

Reply

Marsh Posté le 18-09-2007 à 20:20:43    

string DOIT etre considérer comem un type primitif.
Le seul cas ou string* se justifie c'est dans les map et encore, c'est des cas tordus.

Reply

Marsh Posté le 18-09-2007 à 20:21:57    

Yop Joel :)
 
Des raisons particulières dans tes 2 cas?
 
Merci


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 18-09-2007 à 20:23:10    

en gros, y a des cas ou faire des map<string,string> devient tres couteux (j'ai plsu le details mais j'ai vu ça dans un truc genre GotW ou TIC++)
 
sinon, en general, le cout de mani/copier des string et negligeables dans la pluaprt des applis.

Reply

Marsh Posté le 18-09-2007 à 20:26:23    

ok.
 
Je vais en revenir à mon autre topic, mais j'imagine que c'est lié à std::string (mon cas là).
 
Quid de QString et autres string en général?


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 18-09-2007 à 20:45:31    

QString c'ets string en presk pareil modulo le support des trucs QT spécifique. LEs autres string .??? de quoi veut tu parler ?
Si tu veut dire genre une classe strign que tu réécris - vade retro :o

Reply

Marsh Posté le 18-09-2007 à 20:53:33    

bah string ca vient de la STL non? donc on peut probablement trouver des implémentations diverses (dans mon précédent travail un gars avait recodé la STL plus ou moins).


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 18-09-2007 à 21:01:57    

bah SGI, gcc ou RogueWave, qui se valent toutes.
recider la STL , ca merite bansodogravier amha sauf besoin genre embarqué etc.
 
mais bon, string est quand même décrié de part son monolithisme
cf : http://www.gotw.ca/gotw/084.htm
 

Reply

Marsh Posté le 18-09-2007 à 21:07:17    

ouais on ne comprenait pas trop le besoin, mais le Mr était responsable du framework et il était persuadé que c'était mieux d'avoir un framework personnalisé.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 18-09-2007 à 21:08:39    

bien sur :o j'espere qu'il aura jamais a faire d el'algébre lineaire, LAPACK parait il c'est aps facile à recoder :o
 
C'est typiquement le genre de reflexion contre-productive. Encore uen victime du NBH ...

Reply

Marsh Posté le 18-09-2007 à 21:08:39   

Reply

Marsh Posté le 19-09-2007 à 10:43:53    

vu les implémentations de string ...
 
Je dirais que t'auras tendance à utiliser des * (quelque soit le type) quand :
- la conso de mémoire est importante, et le type ne fait pas de COW ou ce genre de truc (donc pas concerné ici pour string en général)
- tu es plus attaché à l'identité d'un object qu'à sa valeur

Reply

Marsh Posté le 19-09-2007 à 16:58:26    

ok intéressant merci.
Ca m'a permis de chercher un peu sur le COW et de trouver d'autres trucs que je ne connaissais pas :)


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed