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
Author: Johan Vervloet
Date: Thu, 22 Jan 2004 10:26
Date: Thu, 22 Jan 2004 10:26
16 lines
1536 bytes
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
Author: Stijn De Smet
Date: Thu, 22 Jan 2004 11:09
Date: Thu, 22 Jan 2004 11:09
23 lines
1818 bytes
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
Author: Aquila
Date: Thu, 22 Jan 2004 12:07
Date: Thu, 22 Jan 2004 12:07
18 lines
1635 bytes
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
Author: Oelewapperke
Date: Thu, 22 Jan 2004 21:59
Date: Thu, 22 Jan 2004 21:59
31 lines
1758 bytes
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
Author: Luc Kumps
Date: Fri, 23 Jan 2004 07:21
Date: Fri, 23 Jan 2004 07:21
11 lines
1307 bytes
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