string assign

string assign - C++ - Programmation

Marsh Posté le 04-08-2009 à 09:54:37    

Hi,
 
Dans quel contexte l'utilisation de assign est obligatoire ?  
Le = ne suffit pas toujours ?

Reply

Marsh Posté le 04-08-2009 à 09:54:37   

Reply

Marsh Posté le 04-08-2009 à 16:18:45    

D'après la doc sgi, Assign :  Synonym for operator=  
j'ai envie de dire que c'est strictement identique. Dans un premier temps, j'ai eu un doute quant à la facilité de prendre un pointeur sur un opérateur, mais apparamment, il n'y a pas de souci. Peut-être que c'est plus une question de préférence ... En tout cas, pour ma part, je n'ai jamais eu besoin de m'en servir.


---------------
last.fm
Reply

Marsh Posté le 05-08-2009 à 12:07:08    

Je pense avoir un exemple d'utilisation, mais je peux me tromper :
 

Code :
  1. string s( "Hello world!" );
  2. wstring w;
  3. w = s // Problème ?
  4. w.assign(s.begin(), s.end()); // Mieux ?


Message édité par Arry le 05-08-2009 à 12:07:49

---------------
Mon Feed-Back
Reply

Marsh Posté le 25-08-2009 à 15:35:06    

dans ton exemple Arry, c'est à peut près équivalent (même si je soupsonne que operator=( const std::string& ) soit + rapide car le format est homogène).
 
Mais assign avec 2 iterateurs n'est pas simulable par = si ces 2 iterateurs ne sont pas des iterateurs de string.
 

Code :
  1. std::vector< char > v;
  2. v.push_back( 'f' );
  3. v.push_back( 'o' );
  4. v.push_back( 'o' );
  5. std::string s;
  6. s.assign( v.begin(), v.end() ); // ok
  7. s = v; // erreur


 
correction : j'avais pas vu le wstring. Donc ton exemple est déjà explicite :)


Message édité par jesus_christ le 25-08-2009 à 15:36:08
Reply

Sujets relatifs:

Leave a Replay

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