Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Jason McKesson<jmckesson@gmail.com> |
|---|---|
| Newsgroups | comp.std.c++ |
| Subject | Re: Request för std::vector and possibly others: minimal initalization |
| Date | 2012-03-21 11:35 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <3008757.1215.1332274822853.JavaMail.geo-discussion-forums@pbjv6> (permalink) |
| References | <abf103e0-7005-47b4-9888-af946353a525@v22g2000vby.googlegroups.com> |
On Monday, March 19, 2012 11:35:35 PM UTC-7, henrikv wrote:
> Hello group!
>
> When writing parallel code, I often allocate a vector for results. I
> allocate the complete vector with a single resize. What I'd like to do
> is to tell the resize not to initialize the content, since this will
> be overwritten anyway. I'd figure something like:
>
> struct no_init {} g_no_int;
>
> struct Dummy
> {
> Dummy(int a_=0) : a(a_) {}
> Dummy(const no_init&) {} // Without a v-table, this shouldn't need
> to
> touch any part of the created object?
>
> int a;
> };
>
> void foo()
> {
> std::vector<Dummy> dummies;
> dummies.resize(1000, g_no_int);
> // ...
> }
>
> Proposal: add a method to std::vector that allows resize with a
> different constructor than default or copy
> constructor:
>
> template<typename T2>
> void resize_construct_using_translation(size_t n, const T2&t2);
>
> Any thoughts on this?
>
> Best regards,
> Henrik Vallgren
>
This looks more like an improper use of `std::vector` than anything that should be added to the specification.
All you need to do is use `std::vector::reserve` to allocate as much space as you plan to use. Then use `emplace_back` to construct each addition to the `vector` in-place.
--
[ comp.std.c++ is moderated. To submit articles, try posting with your ]
[ newsreader. If that fails, use mailto:std-cpp-submit@vandevoorde.com ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html ]
Back to comp.std.c++ | Previous | Next — Previous in thread | Next in thread | Find similar
Request för std::vector and possibly others: minimal initalization henrikv <henrik.vallgren@stream-space.com> - 2012-03-19 23:35 -0700
Re: Request för std::vector and possibly others: minimal initalization Francis Glassborow<francis.glassborow@btinternet.com> - 2012-03-21 11:35 -0700
Re: Request för std::vector and possibly others: minimal initalization henrikv<henrik.vallgren@stream-space.com> - 2012-03-23 17:09 -0700
Re: Request för std::vector and possibly others: minimal initalization Daniel Krügler <daniel.kruegler@googlemail.com> - 2012-03-24 19:25 -0700
Re: Request för std::vector and possibly others: minimal initalization Francis Glassborow <francis.glassborow@btinternet.com> - 2012-03-24 19:28 -0700
Re: Request för std::vector and possibly others: minimal initalization Jason McKesson<jmckesson@gmail.com> - 2012-03-21 11:35 -0700
Re: Request för std::vector and possibly others: minimal initalization henrikv<henrik.vallgren@stream-space.com> - 2012-03-23 17:10 -0700
Re: Request för std::vector and possibly others: minimal initalization Jason McKesson<jmckesson@gmail.com> - 2012-03-24 17:55 -0700
Re: Request for std::vector and possibly others: mi brangdon@cix.compulink.co.uk (Dave Harris) - 2012-03-24 19:24 -0700
Re: Re: Request för std::vector and possibly others: minimal initalization jgk@panix.com (Joe keane) - 2012-03-27 12:10 -0700
Re: Request för std::vector and possibly others: minimal initalization Kevin McCarty<kmccarty@gmail.com> - 2012-03-23 17:11 -0700
Re: Request för std::vector and possibly others: minimal initalization Miles Bader<miles@gnu.org> - 2012-03-24 17:55 -0700
Re: Request för std::vector and possibly others: minimal initalization henrikv <henrik.vallgren@stream-space.com> - 2012-03-25 23:14 -0700
Re: Request för std::vector and possibly others: minimal initalization Jason McKesson <jmckesson@gmail.com> - 2012-03-24 19:27 -0700
Re: Request för std::vector and possibly others: minimal initalization Pedro Lamarão<pedro.lamarao@gmail.com> - 2012-03-29 12:28 -0700
Re: Request för std::vector and possibly others: minimal initalization Daniel Krügler <daniel.kruegler@googlemail.com> - 2012-03-29 13:17 -0700
csiph-web