Nadanie tablicy wartości - odjazd pociągu

0

Może to będzie głupi post może nie,

Mam element tablicy:

pociag[Paryz][Marsylia][wyjazd_zParyza][0]
Jak nadać dla takiego elementu wartość np. 16:43 - chodzi mi o godzinę odjazdu pociągu z Paryża ? Z nadaniem wartości liczbowej np. 1 nie miałbym problemu, lecz to jest jakby string i ma 5 znaków, a kompilator będzie pokazywał, że ma jakby 0 znaków, bo ostatni element tablicy to 0.

Chodzi mi o to aby móc potem ten element wywołać po przez wskaźnik. Dopiero zacząłem przerabiać wskaźniki i takie coś napotkałem, lecz za bardzo nie mam pojęcia jak dla takiej tablicy nadać wartość.

Dzięki.

0

w przerwie na nauke pythona wyskrobalem Ci malenki program jak to ja bym mniej wiecej zaprojektował program Dworców, dane naturalnie można inaczej ponazywać i pododawać im inne pola, hf

#include <iostream>
#include <string>
#include <map>

struct Pociag
{
	std::string skad;

	std::string dokad;
};

class Dworzec
{
public:
	Dworzec(std::string const& opis) : opis_(opis) {}

	void dodajPociag(std::string const& czas, Pociag const& pociag);

	void wypisz_pociagi();
private:
	std::string opis_;

	std::multimap<std::string, Pociag> pociagi_;
};

void Dworzec::dodajPociag(std::string const& czas, Pociag const& pociag)
{
	pociagi_.insert({czas, pociag});
}

void Dworzec::wypisz_pociagi()
{
	std::cout << "Dworzec: " << opis_ << std::endl;
	for(auto const& e : pociagi_) {
		std::cout << e.first << " Relacja: " << e.second.skad
				  << " -> " << e.second.dokad << std::endl;
	}
}

int main()
{
	Dworzec d("Warszawa Zachodnia");
	d.dodajPociag("16:45", { "Szczecin Glowny", "Radom Glowny"});
	d.dodajPociag("08:23", { "Gdynia", "Krakow Plaszow"});
	d.dodajPociag("10:56", { "Poznan Glowny", "Warszawa Centralna"});
	d.dodajPociag("21:17", { "Wroclaw Glowny", "Suwalki"});

	d.wypisz_pociagi();

	return 0;
}

http://ideone.com/qsf2Fb

0

Musisz użyć odpowiedniego typu elementu. W przypadku godzin odjazdów pociągów użyłbym liczby całkowitej reprezentującej minutę doby (czyli 16:43 to by było 1003), najlepiej 16 bitowej.

Przy okazji, tak jak napisał @gośćabc, tablice to nie jest najszczęśliwszy wybór, lepiej użyj kontenera std::map lub std::unordered_map. Ja bym raczej wolał mieć interfejs używany następująco:

godzina = rozklad[paryz].odjazdy[marsylia];
godzina = rozklad[marsylia].przyjazdy[paryz];

1 użytkowników online, w tym zalogowanych: 0, gości: 1