OVH Cloud OVH Cloud

[STL] assign

2 réponses
Avatar
Marc Boyer
Bonjour,

sur mon TC++PL, je vois une fonction assign sur les sequences,
mais j'avais quelques questions.

1) Est-elle toujours d'actualité ? Elle existe dans mon
TC++PL, mais la version en ligne de la STL de CGI semble
ne pas la connaître.

2) Que fait-elle exactement ? Dans le cas où la taille
est inchangée (le reste est clair) doit-elle appeller un
opérateur de copie sur les éléments déjà existant
ou les détruire et en introduire d'autre.

En gros, opérateur de copie ou destruction+création ?
Ou est-elle libre de faire ce qu'elle veut, charge
à l'utilisateur que l'un ou l'autre donne le même
résultat ?

Merci d'avance,
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.

2 réponses

Avatar
Gabriel Dos Reis
Marc Boyer writes:

| Bonjour,
|
| sur mon TC++PL, je vois une fonction assign sur les sequences,
| mais j'avais quelques questions.
|
| 1) Est-elle toujours d'actualité ? Elle existe dans mon
| TC++PL, mais la version en ligne de la STL de CGI semble
| ne pas la connaître.

C'est standard.

| 2) Que fait-elle exactement ? Dans le cas où la taille
| est inchangée (le reste est clair) doit-elle appeller un
| opérateur de copie sur les éléments déjà existant
| ou les détruire et en introduire d'autre.

Formellement, elle efface la suite

s.erase(s.begin(), s.end());

puis insère les éléments

s.insert(s.begin(), first, last);

| En gros, opérateur de copie ou destruction+création ?

formellement destruction + création.

-- Gaby
Avatar
Marc Boyer
Gabriel Dos Reis wrote:
Marc Boyer writes:
| sur mon TC++PL, je vois une fonction assign sur les sequences,
| mais j'avais quelques questions.
|
| 1) Est-elle toujours d'actualité ? Elle existe dans mon
| TC++PL, mais la version en ligne de la STL de CGI semble
| ne pas la connaître.

C'est standard.


Bien

| 2) Que fait-elle exactement ? Dans le cas où la taille
| est inchangée (le reste est clair) doit-elle appeller un
| opérateur de copie sur les éléments déjà existant
| ou les détruire et en introduire d'autre.

Formellement, elle efface la suite

s.erase(s.begin(), s.end());

puis insère les éléments

s.insert(s.begin(), first, last);

| En gros, opérateur de copie ou destruction+création ?

formellement destruction + création.


Ok, merci.

Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.