Ny på siden og til C++. Jeg har nogle få spørgsmål.

Tags:    c++

Hey hey.

Først lidt om mig selv.
Jeg er ny her på siden men jeg tror jeg kommer til at hænge ud her en del. Jeg er startet på første års datalogi på syddansk universitet og har derfor haft kurser med Java i 2 kvartaler. Men efter at have læst en af de nyeste begynder guides til C++ her på siden, så må jeg sige at jeg umiddelbart tror at det er det sprog jeg kommer til at hænge ved.

For at komme igang med C++ så har jeg tænkt mig at starte ud med at overføre mit seneste eksamensprojekt til C++.

For lige hurtigt at opridse hvad det er for et projekt det drejer sig om. Jeg har lavet et program til at løse TSP(travelling sales person) problemet ud fra nogle forskellige algoritmer. Dette inkludere at indlæse data fra filer med byer og koordinater. Indlæse dem i lister og forsøge at finde den bedste rute ud fra nogle algoritmer.


Okay. nu til spørgsmålene.

Jeg regner med at lave en struct til hver by med 4 parametre per by med nummer, x og y koordiant og en boolean der fortæller om byen er besøgt. Jeg vil så lave en vector med denne datatype. Men hvad skal jeg skrive for at få adgang til en by's parametre placeret i en plads i en vector?? Lidt svært at forklare men jeg håber i kan følge spørgsmålet.

Jeg skal indlæse data fra en fil af dette format:
Fold kodeboks ind/udKode 

Jeg skal indlæse alle integers i en vector. Men hvad skal jeg skrive for at at lede efter næste integer for at jeg kan gemme det i en vector?? I Java laver jeg en scanner og bruger en While(hasNextInt) og gemmer nextInt i en arraylist.

Og et meget generelt spørgsmål. I de forskellige artikler her på siden er der forskel på om folk de bruger STD:: foran almindelige kommandoer. Personligt vil jeg meget gerne undlade at skulle skrive det hele tiden da jeg syntes det fjerner en del læselighed i koden. Men er der noget jeg skal passe på med når jeg ikke bruger det hele tiden???

Så var det vidst også nok fra mig lige nu. Men forvent en masse mere fra min side af (nok mest spørgsmål da jeg lige er begyndt at programmere men meget gerne vil kunne mere).



Indlæg senest redigeret d. 11.04.2008 12:43 af Bruger #13585
6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Du bør, først som sidst, vende dig til at skrive std:: hvor det hører hjemme. Jeg ved at det er et irritationsmoment i starten, men man vender sig altså hurtigt til.
std::cout << "Held og Lykke." << std::endl;




Hej Frank,

velkommen til her, og håber at du har haft en god start på et fedt studie.

C++ har den fordel at der (ofte) er flere muligheder end i Java, ulempen er dog at der ikke er nær så mange "standard" funktionaliteter og at du derfor enten skal programmere din egen funktionalietet eller finde det i noget der kan inkluderes andetsteds. Dette gør at Java oftest ses som lettere at programmere med.

Fil IO grundlæggende kan du se her:
http://www.cplusplus.com/doc/tutorial/files.html
http://www.gamedev.net/reference/articles/article1127.asp
http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/IO.html

Nu til den store med std::, man kan undgå det ved at erklære namespace std;. Men selvom dette gøres vil mange påskønne at du fortsat placerer std::, eftersom dette gør det lettere at vide hvorfra funktionalitet kommer. Dette gør altså koden lettere at forandre og vedligeholde og læse fra andre.

Dette ER nødvendigt at gøre, når man inkluderer mere end eet namsepace og den samme funktionaliette findes i flere namespaces. Bare gør det til en vane lige at skrive std:: når tingene kommer derfra.

Med venlig hilsen
Ieet





Indlæg senest redigeret d. 11.04.2008 16:02 af Bruger #12836
I C++ vil man normalt lave en lille håndparser til at læse sådanne tekst filer ind i data strukturer. getline, ifstream og stringstream og string er ca. det eneste du skal bruge.

Med hensyn til std:: foran; det er mest et spørgsmål om vane, jeg har vennet mig til at skrive og læse std:: foran.
Der er ikke de store problemer ved at skrive "using namespace std;" én gang for alle og så springe std:: over.
I min artikel har jeg af pædagogiske grunde skrevet std:: foran.



Uhh tak for de gode svar. jeg skal nok lige give noget mere respons efter jeg kommer hjem fra konfirmation engang i morgen. Ville bare lige skrive at jeg har set det.



Mange tak for de hurtige og gode svar. jeg har lige skimmet de link igennem og de virker rigtigt gode. Og det er rart at få forskellige meninger omkring det med std:: det virker som et stilspørgsmål og jeg vil prøve at vende mig til det fra starten og så se hvordan det går.



Wauw opdagede lige at de point blev givet lidt hurtigt. skulle nok have ventet til jeg havde sovet :) well jeg mente lige i farten at boksene stod i samme rækkefølge som de svar der var kommet. Skulle nok lige have læst hvad det var jeg gav point til.

Well det skulle have været 35 til Ieet, 5 til Felix og 10 til Bertel.

Så nu er de rigtige kudos i hvert fald givet. så nu vil jeg gå over og skamme mig i hjørnet :)

Jeehbus jeg føler mig dum lige nu. Oh well. så er førstehåndsindtrykket givet og nu må jeg prøve at kravle op derfra.



t