 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
lud42fr Guest
|
Posted: Thu Jul 24, 2003 3:28 pm Post subject: concatener deux vector |
|
|
Bonjour,
je viens de lire la doc sur les vecteurs (std::vector) et je ne voit aucune
methode pour les concatener ?
jusque la je fait un truc bien nul mais je suppose qu'il y a mieux !!!
ex:
for (int i=0;i
V1.push_back(V2[i]);
Si quelqu'un a mieux (et je l'espere !!), je suis preneur !!
Ludo
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr
http://forums.club-internet.fr/
|
|
| Back to top |
|
 |
Fabien SK Guest
|
Posted: Thu Jul 24, 2003 4:18 pm Post subject: Re: concatener deux vector |
|
|
lud42fr wrote:
| Quote: | Bonjour,
je viens de lire la doc sur les vecteurs (std::vector) et je ne voit aucune
methode pour les concatener ?
jusque la je fait un truc bien nul mais je suppose qu'il y a mieux !!!
ex:
for (int i=0;i<V2.size();i++)
V1.push_back(V2[i]);
|
Si tu utilises la méthod "push_back", fais un "reserve" avant, ça peut
éviter des réallocations inutiles
----
std::vector
aaa.push_back(10);
aaa.push_back(20);
std::vector<int> bbb;
bbb.push_back(30);
bbb.push_back(40);
aaa.insert(aaa.end(), bbb.begin(), bbb.end());
std::cout << aaa.size() << " - " << aaa.back() << std::endl;
|
|
| Back to top |
|
 |
Christophe de Vienne Guest
|
Posted: Thu Jul 24, 2003 4:19 pm Post subject: Re: concatener deux vector |
|
|
lud42fr wrote:
| Quote: |
Bonjour,
je viens de lire la doc sur les vecteurs (std::vector) et je ne voit
aucune methode pour les concatener ?
|
V1.insert( V1.end(), V2.begin(), V2.end() );
--
Christophe de Vienne
Experience is something you don't get until just after you need it.
Oliver's Law.
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
|
| Back to top |
|
 |
Gabriel Dos Reis Guest
|
Posted: Thu Jul 24, 2003 5:11 pm Post subject: Re: concatener deux vector |
|
|
Fabien LE LEZ <gramster (AT) gramster (DOT) com> writes:
| Quote: | On 24 Jul 2003 18:35:31 +0200, Gabriel Dos Reis
[email]gdr (AT) integrable-solutions (DOT) net[/email]> wrote:
| V1.insert( V1.end(), V2.begin(), V2.end() );
Cela suppose que V1 a sseez de place pour la suite V2.
Euh... Tu confondrais pas avec std::copy, par hasard ?
|
Je confonds simplement.
-- Gaby
|
|
| Back to top |
|
 |
Christophe de Vienne Guest
|
Posted: Thu Jul 24, 2003 5:34 pm Post subject: Re: concatener deux vector |
|
|
Gabriel Dos Reis wrote:
| Quote: | Fabien LE LEZ <gramster (AT) gramster (DOT) com> writes:
| On 24 Jul 2003 18:35:31 +0200, Gabriel Dos Reis
| <gdr (AT) integrable-solutions (DOT) net> wrote:
|
| >| V1.insert( V1.end(), V2.begin(), V2.end() );
|
| >Cela suppose que V1 a sseez de place pour la suite V2.
|
| Euh... Tu confondrais pas avec std::copy, par hasard ?
Je confonds simplement.
|
L'espace d'un instant j'ai eu peur :-)
--
Christophe de Vienne
Experience is something you don't get until just after you need it.
Oliver's Law.
|
|
| Back to top |
|
 |
Gabriel Dos Reis Guest
|
Posted: Fri Jul 25, 2003 11:17 am Post subject: Re: concatener deux vector |
|
|
[email]kanze (AT) gabi-soft (DOT) fr[/email] writes:
| Quote: | Gabriel Dos Reis <gdr (AT) integrable-solutions (DOT) net> wrote in message
news:<m3wue7dgrw.fsf (AT) uniton (DOT) integrable-solutions.net>...
Christophe de Vienne <cdevienne (AT) alphacent (DOT) com> writes:
| lud42fr wrote:
| > je viens de lire la doc sur les vecteurs (std::vector) et je ne
| > voit aucune methode pour les concatener ?
| V1.insert( V1.end(), V2.begin(), V2.end() );
Cela suppose que V1 a sseez de place pour la suite V2.
std::copy(V2.begin(), V2.end(), std::back_insert(V1));
tu peux faire un reserve() avant.
Je ne comprends pas trop la rémarque sur « assez de place » ; entre
l'insert de Christophe et ta copy, ce n'est qu'une question de style.
|
lis les messages qui ont suivi.
-- Gaby
|
|
| 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
|
|