Cześć, chciałem napisać prosty programik do wyświetlania tekstu z kontenera, który zawiera obiekty klasy string. Zależy mi tylko na odczycie bez modyfikowania danych. Program ma losować liczbę i wyświetlać odpowiedni element kontenera, który jest napisem. Potrzebny jest w takim razie chyba kontener o dostępie swobodnym. Który sprawdzi się najlepiej?
0
3
Array, jeśli znasz rozmiar kontenera w momencie kompilacji, lub Vector, jeśli nie — albo zamiast gdybylogii możesz zrobić kilka wersji i przetestować.
1
Zgadzam się z powyższym, a osobiście użyłbym std::vector
i "keep carry on" :)
2
swoją drogą jak to jakieś teksty które wpisują na sztywno możesz zrobić tak(ale to będą musiałby chyba char a nie std::string).
constexpr std::array<int,5> values {1,2,3,4,5};
constexpr vector dopiero będzie w c++ 20.
3
To zależy jak wylosowane liczby mapują się na napisy.
Jeżeli z góry znasz zakres i wiesz, że będą one obok siebie, czyli np. 1, 2, 3, 4
, to prosty array/vector
wystarczy.
Alee jeżeli np przy wylosowaniu 4
pokazać napis A
, a przy 39183
masz pokazać napis B
, to std::unordered_map<unsigned, std::string>
będzie lepszym wyborem.