Avatar billede babafisk Nybegynder
14. oktober 2003 - 14:25 Der er 15 kommentarer og
1 løsning

Brug af CArray

Hej Eksperter
Jeg har et problem. Jeg skal have lavet et array hvori jeg kan lægge brugernavn og ip på en række brugere. Hvordan gør jeg det?
Jeg er rimelig ny til c++ og jeg koder i MSVC++
Avatar billede arne_v Ekspert
14. oktober 2003 - 14:31 #1
Det kan vel gøres på mange måder.

string *brugernavn = new string[antal];
string *ip = new string[antal];

brugernavn[0] = "mig";
ip[0] = "1.1.1.1";
brugernavn[1] = "dig";
ip[1] = "2.2.2.2";

antyder en løsning.
Avatar billede babafisk Nybegynder
14. oktober 2003 - 14:38 #2
okay. Jeg havde godt nok tænkt mig et 2-d array men er det meget besværligt at lave?
Avatar billede arne_v Ekspert
14. oktober 2003 - 14:51 #3
Ikke hvis du allokerer det statisk.

Men jeg synes ikke at et 2D array er en god løsning på det.

Så hellere et 1D array af struct med 2 felter i.
Avatar billede the_bma_man Nybegynder
14. oktober 2003 - 14:52 #4
Næh - du laver den så bare todimensional

string *ditarray = new string[antal][2];

ditarray[0][0] = "mig";
ditarray[0][1] = "1.1.1.1";
ditarray[1][0] = "dig";
ditarray[1][1] = "2.2.2.2";

antyder så igen en løsning.
Avatar billede the_bma_man Nybegynder
14. oktober 2003 - 14:53 #5
Hep - arne_v

Det ville jo være den pæne løsning :-)
Avatar billede babafisk Nybegynder
14. oktober 2003 - 14:58 #6
arne_v: Hvad er det helt præcis du mener? jeg er jo som sagt ret ny til c++
Avatar billede arne_v Ekspert
14. oktober 2003 - 15:03 #7
struct bruger
{
  string navn;
  string ip;
};

...

bruger *alle = new bruger[antal];
alle[0].navn = "mig";
alle[0].ip = "1.1.1.1";
Avatar billede babafisk Nybegynder
14. oktober 2003 - 15:03 #8
Desuden skal det være et public array så hvis i kan komme med et eksempel jeg kan sætte direkte ind i mit project ville jeg blive glad
Avatar billede arne_v Ekspert
14. oktober 2003 - 15:04 #9
bma>

Prøv og compile det der kode.
Avatar billede arne_v Ekspert
14. oktober 2003 - 15:04 #10
Om det er en public variabel eller en private variabel eller en
lokal variabel betyder ikke noget for ideen.
Avatar billede arne_v Ekspert
14. oktober 2003 - 15:05 #11
Og et svar.
Avatar billede babafisk Nybegynder
14. oktober 2003 - 15:05 #12
nej okay men jeg er bare i tvivl om hvordan jeg skal sætte det ind i mit project
Avatar billede the_bma_man Nybegynder
14. oktober 2003 - 15:25 #13
Arne>Har jeg ikke prøvet.
Men burde vel også være ligemeget for at skitsere ideen.
Men anyway - burde ikke have været vist - et array af structs er meget pænere.
Avatar billede arne_v Ekspert
14. oktober 2003 - 15:35 #14
Dynamiske 2D arrays er et problem.
Avatar billede olennert Nybegynder
15. oktober 2003 - 15:57 #15
#include <vector>
#include <string>
using std::vector;
using std::string;

struct bruger {
  string navn;
  string ip;
  bruger(const string& navn_, const string& ip_)
    : navn(navn_), ip(ip_)
  { }
};

...

typedef vector<bruger> MyArray;
MyArray alle;
alle.push_back(bruger("mig", "1.1.1.1"));

er også en mulighed (laver et dynamisk array). I modsætning til det oprindelige forslag, så er det her udelukkende call-by-value, altså er elementerne i alle kopier af de oprindelige elementer (hvorfor jeg har tilføjet en konstruktør til bruger).
Avatar billede arne_v Ekspert
25. oktober 2003 - 13:58 #16
Tid at lukke spørgsmålet ?
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