🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
5 messages
5 total messages Started by Johan Vervloet Thu, 22 Jan 2004 10:26
[C++] Direct intitialiseren van elementen in een vector
#3240
Author: Johan Vervloet
Date: Thu, 22 Jan 2004 10:26
16 lines
1536 bytes
Hallo,

Wanneer je in C of C++ `gewone' arrays gebruikt, kan je met een
constructie als deze:

int a[] = {3,0,9,8,2};

de elementen van een array direct initialiseren.  Is er iets gelijkaardigs
mogelijk voor een C++ stl vector? 

Bedankt,
Johan

-- 
Stem gewestpallieter.be tot jeugdwerksite van het jaar!
http://www.gewestpallieter.be
Re: [C++] Direct intitialiseren van elementen in een vector
#3241
Author: Stijn De Smet
Date: Thu, 22 Jan 2004 11:09
23 lines
1818 bytes
Johan Vervloet wrote:

> Hallo,
> 
> Wanneer je in C of C++ `gewone' arrays gebruikt, kan je met een
> constructie als deze:
> 
> int a[] = {3,0,9,8,2};
> 
> de elementen van een array direct initialiseren.  Is er iets gelijkaardigs
> mogelijk voor een C++ stl vector?
> 
Ik denk niet dat dit mogelijk is(toch niet met de reeks constructors uit
std::vector). Het is wel mogelijk een vector te initialiseren vertrekkend
van een bestaande array.
Misschien kun je het zo oplossen:
int a[] = {3,0,9,8,2};
std::vector<int> test(a,a+sizeof(a)/sizeof(int));
of de sizeof's weglaten aangezien je de lengte toch kent. 
De C++ compiler zal dit waarschijnlijk toch allemaal wegoptimaliseren als je
a[] nergens anders gebruikt.
-- 
Stijn De Smet
Re: [C++] Direct intitialiseren van elementen in een vector
#3242
Author: Aquila
Date: Thu, 22 Jan 2004 12:07
18 lines
1635 bytes
Johan Vervloet <johan.vervloet@ua.ac.be> wrote:

>Wanneer je in C of C++ `gewone' arrays gebruikt, kan je met een
>constructie als deze:
>
>int a[] = {3,0,9,8,2};
>
>de elementen van een array direct initialiseren.  Is er iets gelijkaardigs
>mogelijk voor een C++ stl vector? 
>
Ik kan het niet direct testen, maar toch een gok:
is het niet gewoon mogelijk om die assignment te doen? Als die array
zou worden omgezet in een vector via een constructor, en dan de
assignment... Maar het is een gok ik geef het toe, ik heb even geen
*nix machine om op te testen.
-- 
Aquila
"May the source be with you"
Re: [C++] Direct intitialiseren van elementen in een vector
#3247
Author: Oelewapperke
Date: Thu, 22 Jan 2004 21:59
31 lines
1758 bytes
Johan Vervloet wrote:

> Hallo,
> 
> Wanneer je in C of C++ `gewone' arrays gebruikt, kan je met een
> constructie als deze:
> 
> int a[] = {3,0,9,8,2};
> 
> de elementen van een array direct initialiseren.  Is er iets gelijkaardigs
> mogelijk voor een C++ stl vector?

Dit werkt gewoon met gcc ( het gebruikt wel een gcc extensie natuurlijk )

<code>
#include <iostream>
#include <vector>

using namespace std;

int a[] = {3,0,9,8,2};

int main() {
  vector<int> v(a, a+5);
  for (vector<int>::iterator i = v.begin(); i != v.end(); i++) cout << *i <<
endl;
  return 0;
}
</code>

Oelewapperke
Re: [C++] Direct intitialiseren van elementen in een vector
#3249
Author: Luc Kumps
Date: Fri, 23 Jan 2004 07:21
11 lines
1307 bytes
Oelewapperke wrote:
> int a[] = {3,0,9,8,2};
>
> int main() {
>   vector<int> v(a, a+5);

Iets algemener is

  vector<int> v(a, a+sizeof(a)/sizeof(*a));

Luc K
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads