Avatar billede tokelil Nybegynder
11. august 2001 - 15:02 Der er 6 kommentarer og
2 løsninger

ReDim et array ?

Er der en måde jeg kan ændre antallet af elementer i et array ? (Ligesom VBScripts Redim)

Jeg skal bruge et array af TDateTime, men jeg ved ikke størrelsen af det array, da det afhænger af hvor mange poster der er i min database... Nogen ideer ??
Avatar billede henrik_ffc Nybegynder
11. august 2001 - 15:05 #1
Du skal benytte en Vector istedet for et almindelig array.
I modsætning til et array, så kan en Vector ændre størrelse
Avatar billede tokelil Nybegynder
11. august 2001 - 16:03 #2
Hmmm... Vector ?
Jeg kender ikke lige noget til vectors. Du har tilfældigvis ikke et simpelt eksempel på brug af vector, eller nogen gode links ?
Avatar billede kamikaze Nybegynder
12. august 2001 - 13:09 #3
Kender du noget til STL (Standard Template Library)?????
I STL\'en er der implementeret både vector og lister og maps og .......
Du kan evt. bruge STL lister, der i modsætning til arrays er dynamisk allokerbare.

Her er et lille eksempel (skrevet i Borland C++ 5.02):

#include <iostream.h>
#include <conio.h>
#include <list.h>

void main()
{
  // lav en liste af typen \'int\'
  std::list<int> HeltalsListe;
  int temp;

  do
  {
    cout << \"Indtast et tal (0 = stop) :>\";
    cin >> temp;
    // hvis temp > 0, så indsæt bagerst i listen
    if (temp) HeltalsListe.push_back(temp);
  } while (temp != 0);

  cout << \"Listen indeholder:\" << endl;
  // lav en \'iterator\' af typen \'int\' og sæt den til begyndelsen af listen
  std::list<int>::iterator it = HeltalsListe.begin();
  while (it != HeltalsListe.end())
  {
    cout << (*it++) << endl;
  }

  //sortering er nemt i standard lister
  HeltalsListe.sort();
  cout << \"Listen er sorteret:\" << endl;
  // sæt iteratoren til listens begyndelse igen
  it = HeltalsListe.begin();
  while (it != HeltalsListe.end())
  {
    cout << (*it++) << endl;
  }

  getch();
}
Avatar billede tokelil Nybegynder
12. august 2001 - 13:40 #4
Jeg må indrømme at jeg ikke kender meget til STL... Men ved lidt mere idag end jeg gjorde inden jeg postede her! :-) Jeg må lige se at få læst lidt om de funktioner der er i STL... Dokumentationen til STL i Builder 5 er ret ringe ! (Klart nok...)

Anyway, jeg fik det til at virke via en vector igår. (Bruger den sikkert forkert !)
Er en list bedre ? (eller det samme) Måske mere hukommelses effektiv?

Du skriver at push_back lægger det nye element  bagerst. Hvad med resize ?

Nogen af jer der ligger inden med nogle gode links til tutorials omkring STL ?

Tak for hjælpen begge !!
Avatar billede tokelil Nybegynder
12. august 2001 - 13:41 #5
Agh.. kunne ikke lige finde ud af at afsætte flere point :-(
Avatar billede tokelil Nybegynder
12. august 2001 - 13:44 #6
Hehe... var meningen jeg ville have givet Henrik 30 og Kamikaze 40 point, men lykkedes altså ikke! (Den skriver jeg har -20 point tilbage til fordeling! :-)) Sig lige til hvis du vil have nogle flere point, så jeg kan oprette et nyt indlæg.
Avatar billede kamikaze Nybegynder
12. august 2001 - 19:50 #7
Jo tak til lidt flere point, hvis du synes... Kan evt. skrive lidt om STL imorgen fra arbejde........ CIAO
Avatar billede tokelil Nybegynder
13. august 2001 - 14:37 #8
Der ligger 40p mere til dig her:
http://www.eksperten.dk/spm/98035

Du behøver ikke at skrive mere om STL, med mindre du har alt for meget tid... ;-)
(Okay, en kort beskrivelse af forskellen på lists og vectors ville være rart)

Anyway, søgte lidt på google og fandt følgende turtorial jeg tror jeg vil læse:
http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm

Ligger du/i inde med nogle andre gode links, ville det heller ikke være af vejen!

Tak for hjælpen !!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester