Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #44873
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: best way to remove std::vector member |
| Date | 2016-09-05 21:11 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <87mvjmxg2y.fsf@bsb.me.uk> (permalink) |
| References | <nqkf55$fu4$1@dont-email.me> |
Lynn McGuire <lynnmcguire5@gmail.com> writes:
> What is the best way to loop and remove a member of a std::vector
> instance variable ?
The loop (possibly correctly) removes all the members of the vector that
are equal to the target.
> The current code is:
>
> std::vector <DataGroup *> owners; is an class instance variable.
>
> int DataItem::removeOwner (DataGroup * ownerDG)
> {
> int num = owners.size ();
>
> for (int i = 0; i < num; i++)
> {
> if (owners [i] == ownerDG)
> {
> owners.erase (owners.begin () + i);
> --num;
> --i;
> }
> }
> }
It looks like you want the erase-remove idiom:
owners.erase(std::remove(owners.begin(), owners.end(), ownerDG),
owners.end());
but you might really want to stop at the first (something your example
does not do).
--
Ben.
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
best way to remove std::vector member Lynn McGuire <lynnmcguire5@gmail.com> - 2016-09-05 13:56 -0500
Re: best way to remove std::vector member Paavo Helde <myfirstname@osa.pri.ee> - 2016-09-05 22:43 +0300
Re: best way to remove std::vector member Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-05 21:11 +0100
Re: best way to remove std::vector member Vir Campestris <vir.campestris@invalid.invalid> - 2016-09-05 21:28 +0100
Re: best way to remove std::vector member Marcel Mueller <news.5.maazl@spamgourmet.org> - 2016-09-05 23:17 +0200
Re: best way to remove std::vector member Vir Campestris <vir.campestris@invalid.invalid> - 2016-09-07 20:55 +0100
Re: best way to remove std::vector member Juha Nieminen <nospam@thanks.invalid> - 2016-09-06 06:14 +0000
Re: best way to remove std::vector member Luca Risolia <luca.risolia@linux-projects.org> - 2016-09-06 11:16 +0200
Re: best way to remove std::vector member Öö Tiib <ootiib@hot.ee> - 2016-09-06 07:16 -0700
Re: best way to remove std::vector member Luca Risolia <luca.risolia@linux-projects.org> - 2016-09-23 14:38 +0200
Re: best way to remove std::vector member Lynn McGuire <lynnmcguire5@gmail.com> - 2016-09-06 12:30 -0500
Re: best way to remove std::vector member Paavo Helde <myfirstname@osa.pri.ee> - 2016-09-06 21:32 +0300
Re: best way to remove std::vector member mark <mark@invalid.invalid> - 2016-09-08 15:58 +0200
Re: best way to remove std::vector member Lynn McGuire <lynnmcguire5@gmail.com> - 2016-09-08 12:45 -0500
Re: best way to remove std::vector member mark <mark@invalid.invalid> - 2016-09-08 21:59 +0200
Re: best way to remove std::vector member Lynn McGuire <lynnmcguire5@gmail.com> - 2016-09-08 15:25 -0500
Re: best way to remove std::vector member Victor Bazarov <v.bazarov@comcast.invalid> - 2016-09-09 08:09 -0400
Re: best way to remove std::vector member mark <mark@invalid.invalid> - 2016-09-09 17:06 +0200
Re: best way to remove std::vector member Victor Bazarov <v.bazarov@comcast.invalid> - 2016-09-09 11:22 -0400
Re: best way to remove std::vector member mark <mark@invalid.invalid> - 2016-09-09 20:33 +0200
Re: best way to remove std::vector member Victor Bazarov <v.bazarov@comcast.invalid> - 2016-09-09 16:07 -0400
Re: best way to remove std::vector member Kan <fcantoro@nospam.it> - 2016-09-12 18:26 +0200
csiph-web