A C++ többféle konténert kínál, amelyekkel ugyanolyan típusú elemeket tárolhatsz rendezett sorrendben.
A fix méretű konténerekhez std::array áll rendelkezésre, a std::vector pedig dinamikus átméretezést kínál.
Amikor tömböt vagy vektort deklarálsz, meg kell adnod, hogy milyen típusú elemeket fog tárolni a konténer. A tömböknél emellett a méretet is meg kell adni. Az alábbi példák megmutatják, hogyan hozhatod létre a két konténertípust:
#include <array>
#include <string>
// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times
A vektorok általában több helyet igényelnek, mert memóriát allokálnak a további növekedéshez. A méretet nem kell megadnod:
#include <vector>
// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1
Megjegyzés: A sablon mint fogalom pontos működését még nem kell ismerned, arról a tantervfában lejjebb külön fogalom szól.
A vektorok és a tömbök ugyanazokkal a függvényekkel érik el az elemeiket.
A front és a back tagfüggvénnyel kérheted le a konténer első és utolsó elemét.
Egy adott elem eléréséhez ott van az at és a [] operátor is.
countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"
Megjegyzés: Ha a konténer mérettartományán kívüli pozíciót választasz, a
[]nem definiált viselkedéshez vezethet. Azatfüggvény ezzel szemben kivételt dob, ami hosszú távon megkönnyítheti az életedet.
Mivel a vector mérete nem rögzített, adhatsz hozzá és vehetsz el belőle elemeket.
Erre a két gyakori függvény az emplace_back és a pop_back.
std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team
A konténerek ürességét az empty tagfüggvénnyel ellenőrizheted.
Ha tudni szeretnéd, hány elem van benne, használd a size függvényt.