Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 10:50

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Vector Problemchen

Discussion on Vector Problemchen within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Seife_'s Avatar
 
elite*gold: 35
Join Date: Jun 2009
Posts: 966
Received Thanks: 73
Vector Problemchen

Code:
int _tmain(int argc, _TCHAR* argv[])
{
	string lvlname;
	char option;
	ifstream input;
	ofstream output;

	cout << "Geben sie den Namen ein."<<endl;
	cin >> lvlname;

	input.open(lvlname + ".txt");

	
	string outputs;
	string temp;
	vector<string> file[6];

	if(input)
	{
		while(!input.eof())
		{
			getline(input, temp);
			file.push_back(temp);
		}
	}

	else
		return -1;
Die Idee hinter diesem Code ist es Zeilen in einen Vector von Strings zu laden. Ich wollte erstmal wissen wie man das korrekt machen würde. Ich weiß dass ist von der Form her noch ziemlich schlecht aber ich frag nach nem besseren Weg wie man das Umsetzen könnte und vor allem die Gründe dafür. Und ich bekomm noch nen compile time error bei " file.push_back(temp);" nämlich
Code:
1>c:\users\seithe\documents\visual studio 2010\projects\test\test\test.cpp(33):
 error C2228: Links von ".push_back" muss sich eine Klasse/Struktur/Union befinden.
Woran liegt das denn ^^ Danke
Seife_ is offline  
Old 03/02/2013, 01:55   #2


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Du machst ein Array von Vektoren und willst dann von diesem die Methode push_back aufrufen. Ein Array hat die logischerweise nicht.
Ich gehe davon aus, dass du einen Vektor der Größe 6 wolltest, richtig?
Das ginge folgendermaßen:
Code:
vector<string> file(6);
Dann sollte es auch gehen. Ein Array von Vektoren wären ja letztendlich 6 einzelne Vektoren und jeder kann mehrere Strings fassen; ich denke nicht, dass du das wolltest.
Falls doch, dann musst du natürlich angeben, welchen Vektor du meintest, sprich
Code:
//z.B. den ersten
file[0].push_back(...);
MrSm!th is offline  
Thanks
1 User
Old 03/02/2013, 02:52   #3
 
Seife_'s Avatar
 
elite*gold: 35
Join Date: Jun 2009
Posts: 966
Received Thanks: 73
Doch, genau das war es Vielen Dank
Seife_ is offline  
Old 03/02/2013, 10:19   #4
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Auch noch ne kleine Ergänzung dazu:
Die Anzahl im Konstruktor anzugeben, bringt oft einen Nebeneffekt mit, den man nicht erwartet. Es werden dabei schon n Objekte erstellt und im Vector angelegt. Da du diese aber nachher sowieso überschreibst, ist das sinnlos.

Ein bzw. der Vorteil von Vectoren ist ja, dass man sich um die Größe (meist) nicht wirklich kümmern muss.
Das einzige, was manchmal sinnvoll sein kann ist ein vec.reserve(n). Damit wird Speicher für n Elemente angefordert und bei großen Datenmengen kann die kontinuierliche Anforderung von Speicher den ein oder anderen Algo merkbar verlangsamen.

Da du auch noch nach einer anderen Lösung fragst, hier mal die etwas mehr C++'sche:
Code:
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
#include <iterator>

const char* OPEN_FILENAME = "foo.txt";

int main()
{
	std::vector<std::string> lines;
	std::ifstream open_file(OPEN_FILENAME);
	
	if(open_file)
	{
		std::copy(std::istream_iterator<std::string>(open_file), std::istream_iterator<std::string>(), std::back_inserter(lines));
	}
}


Gruß
Gruß
Schlüsselbein is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[HowTo]Vector Wallpaper erstellen
08/31/2011 - Artist Tutorials - 8 Replies
Auf Anfrage habe ich dieses Bild Tutorial erstellt : http://img816.imageshack.us/img816/3048/vectortut .jpg Material MEGAUPLOAD - The leading online storage and file delivery service
Mw2 Vector
05/12/2011 - Call of Duty - 9 Replies
Stimmt das wenn man Schaldämpfer raufschrauft dass sich die Vector nicht mehr so verzieht
Vector Bildschirmschoner
12/09/2010 - General Art - 3 Replies
Hey Leute, Da mir langweilig ist möchte ich euch zur verschönerung eures Desktops ein paar 1200x800px große stylische Desktophintergründe zur verfügung stellen Nummer 1: http://img263.imageshack.us/img263/3104/unbenannt 1ta.jpg http://img253.imageshack.us/img253/6052/hintergru nd2j.jpg Auf Anfrage :
Hilfe bei vector [c++]
11/04/2010 - C/C++ - 17 Replies
Hilfe bei vector Ja, ich weiß, dass ich vieles frage. Aber man muss den Code ja auch verstehen den man schreibt und nicht einfach auswendig lernen... Vorweg: Ein vector ist sozusagen ein Datencontainer wo mehrere Daten eines Types z.B. int gespeichert werden. Also im Prinziep das selbe wie ein array.Mein Problem: Ich lese gerade ein Buch: Einführung in die Programmierung mit C++ von Bjarne Stroustrup (Erfinder von C++) Nun werden in diesem Buch nicht Arrays sondern Vectoren verwendet. die...
Vector / Vexel Effect - Tutorial
05/01/2009 - Artist Tutorials - 2 Replies
Here a short tutorial for a very nice vector like effect. http://img3.imagebanana.com/img/whh7h113/Cool_Vec tor_Tutorial___CraZy_by_NetG.jpg After you finished all it should looks like this: Finished



All times are GMT +1. The time now is 10:50.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.