mboost-dp1

STL - i Visual express C++ ?? hvordan?


Gå til bund
Gravatar #1 - Qw_freak
10. jan. 2010 13:44
hey, jeg skal bruge SGI's standaret template library i forbindelse med programmering i c++ på e-ingeniørstudiet, men hvordan kommer jeg til at bruge det, kan ikke finde ud af det via google hvordan jeg skal installere det!

og hvis jeg kigger på Visual Express -MSDN står der at der er Standard Template Library (STL) indbygget i den, men jeg kan ikke komme til at benytte funktionen 'reverse'

mit nuværende lille prøveprogram ser sådan ud? -fejl= reverse er ukendt for compileren!

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main()
{
double A[6] = { 1.2, 1.3, 1.4, 1.5, 1.6, 1.7 };
reverse(A, A + 6);
for (int i = 0; i < 6; ++i)
cout << "A[" << i << "] = " << A[i];

return 0;
}
Gravatar #2 - arne_v
10. jan. 2010 14:16
#1

#include <algorithm>
Gravatar #3 - Qw_freak
10. jan. 2010 14:39
@2: takker, det hjalp!

Ved du/nogen hvad en iterator er, jeg har læst om det på wikipedia, men kan ikke rigtig forholde mig til det der står, har nok brug for at høre det på dansk!
Gravatar #4 - arne_v
10. jan. 2010 16:05
#3

En iterator er noget som fortæller dig hvor du er i en sekvens.
Gravatar #5 - Spiderboy
10. jan. 2010 16:18
#3
Kort sagt et object, som du kan bruge til at løbe gennem en sekvens.

http://www.cppreference.com/wiki/stl/iterators
Gravatar #6 - Qw_freak
10. jan. 2010 16:22
Spiderboy (5) skrev:
#3
Kort sagt et object, som du kan bruge til at løbe gennem en sekvens.

http://www.cppreference.com/wiki/stl/iterators


fedt, det gav mening, kort men godt! :) takker
Gravatar #7 - squad2nd
12. jan. 2010 17:02
#6

Det er ikke en dårlig idé at finde kode-eksempler i et simplere sprog som fx Java/C# for at se hvordan noget fungerer, specielt når vi taler om C++.
Fx noget så simpelt som iterators er udpenslet som den store videnskab i C++ bøger, selvom det faktisk bare er en smartere måde (måske mere effektiv måde) at hente og bearbejde objekter som er i en collection/container, uden at bruge alverdens smarte tricks i for/while løkker.
Gravatar #8 - arne_v
12. jan. 2010 17:14
#7

Måske.

Det kan godt gøre det nemmere at forstå.

Men nogen gange er der koncepter i C++ og Java/C# som hedder det samme og ligner hinanden på overfladen, men som når man dykker ned i sagen faktisk er ret forskellige.
Gravatar #9 - Windcape
13. jan. 2010 02:03
Iterators i sprog uden mulighed for 'yield' er dog noget så meningsløst.

I C++ og Java er iterators en løsning på hvad der i C# findes som foreach. Det har ikke så meget med rigtige iterators at gøre (som f.eks. når man henter data fra en database).

Python og C# er meget bedre at kigge på hvis man skal forstå rigtige iterators. Samtidig kan man se hvor dårligt det er implementeret i de anre sprog.

IEnumerable<T> sammen med 'yield' i C# er nok det bedste implementation i et strong typed sprog jeg har oplevet.

(At sprog som Haskell så altid er smartere, er en helt anden sag)
Gravatar #10 - illishar
13. jan. 2010 08:17
C# er vel ikke synderligt godt at studere, hvis man vil studere iterators. De er jo netop gemt væk i foreach, og bruges dermed oftes kun implicit.

De klassiske iterator-objekter i C++ er derimod udpenslede og *meget* udbredte.
Derudover er de også et godt eksempel et af de ubehaglige aspekter af OO-kode. Iterator-objekter giver god mening rent kode-mæssigt og meget lille mening rent forståelses/struktur-mæssigt ;)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login