Avatar billede anarchy Nybegynder
31. juli 2002 - 02:49 Der er 10 kommentarer og
1 løsning

Vectors

Det her kan måske lyde dumt, men postede et (dårligt) program jeg havde skrevet, sammen med et spørgsmål om at sting arrays, fik svar, men et at svarene var at bruge en 'vector of strings' (Tror det var sådan), nu mit spørgsmål, havd betyder 'vectors of strings'?
Avatar billede nico26 Nybegynder
31. juli 2002 - 03:03 #1
En vector er en liste-agtig datastruktur, der kan indeholde objekter. Så en "vector of strings" er en liste med strenge.
Avatar billede anarchy Nybegynder
31. juli 2002 - 03:15 #2
Hmmm ok, lyder fint, nu synes jeg bare du skal fortælle mig hvordan man laver en, eller hvor jeg kan finde ud af hvordan jeg laver en =)
Avatar billede nico26 Nybegynder
31. juli 2002 - 04:05 #3
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main() {
  vector <string> s;
  vector <string>::iterator Itr;

  s.push_back("Hello");
  s.push_back("World");

  for (Itr = s.begin(); Itr != s.end(); Itr++)
    cout << *Itr << " ";

  cout << endl;
}
Avatar billede anarchy Nybegynder
31. juli 2002 - 04:22 #4
Lidt commets ville være rart :)
Avatar billede nico26 Nybegynder
31. juli 2002 - 04:29 #5
en vector er typeparametiseret - dvs. at du kan vælge hvilken type vectoren skal indeholde objekter af - i dette tilfælde strenge.

vector <string> s;

for at tilføje elemeter i vektoren, kan du f.eks. bruge push_back(), der putter elementet (strengen) bagest i listen.

til sidst bruger jeg en iterator til gennemløbe alle elementerne i listen.
Avatar billede anarchy Nybegynder
31. juli 2002 - 14:52 #6
Takker :) Er sprørgsmål mere, hvordan kalder jeg de indiviualle elementer i vectoren?
Avatar billede nico26 Nybegynder
31. juli 2002 - 21:29 #7
Hvad mener du med at kalde?
Avatar billede anarchy Nybegynder
31. juli 2002 - 22:54 #8
Kalde er måske det forkerte ord, jeg mener hvordan viser jeg fx. 'Midten' med den her kode:

  s.push_back("Toppen");
  s.push_back("Midten");
  s.push_back("Bunden");
Avatar billede nico26 Nybegynder
31. juli 2002 - 23:19 #9
s.push_back("Toppen");
  s.push_back("Midten");
  s.push_back("Bunden");

  cout << s[1] << endl; //skriver item1 ud (midten)
Avatar billede anarchy Nybegynder
01. august 2002 - 04:51 #10
Ok takker :)
Avatar billede soepro Nybegynder
02. august 2002 - 14:32 #11
En "vector" betyder bare et "array af".

String stringVector[100]

er også en vector. Fidusen er at mange af de ting man har brug for til behandling af vektorer, findes indbygget i de STL (Standard Template Library !/?) som følger med compileren - derfor er

vector<String> stringVector

ofte "bedre" at bruge, hvis man skal lave tingene blot en lille smule mere avancerede. Man kan f.eks. benytte indbyggede funktioner til at sortere vektoren i en eller anden orden, finde et bestemt værdi osv. - det kan man selvfølgelig også selv lave, men STL er blot en template altså skabelon til hurtigere at lave det man skal bruge.
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