lang:cpp:container
Ceci est une ancienne révision du document !
Spécificités
Différence entre les conteneurs
Conteneur | Mémoire contiguë |
---|---|
vector | Oui |
array | Oui |
deque | Non |
list | Non |
forward_list | Non |
stack | Non |
queue | Non |
priority_queue | Dépend |
Choosing the Right Container: Sequential Containers Archive du 09/09/2019 le 13/11/2019
std::set
Les itérateurs begin
et end
renvoient un type const
. std::set
est ordonné et sa clé est stockée dans un arbre de type red-black.
C++ std::set update is tedious: I can't change an element in place Archive du 07/02/2010 le 02/01/2020
set::vector
Il y a un cas particulier pour bool. La mémoire est optimisée donc un octet peut stocker 8 bits. Ce qui fait que l'accès à la propriété data()
est bloquée. Si cette optimisation n'est pas souhaitée, il faut utiliser un std::vector<bool>
.
Manipulation des données
std::string et std::array
std::array
tostd::string
std::string str(std::begin(arr), std::end(arr));
std::string
tostd::array
std::string toto("tototototototo1234"); std::array<char, 16> arr{}; std::copy_n(toto.begin(), std::min(toto.length(), static_cast<size_t>(16)), arr.data());
Comparaison de containers
#include <utility> std::vector<int> v1 = std::vector<int>{ 1, 2, 3, 4, 5 }; std::set<int> s2 = std::set<int>{ 2, 3, 4, 5, 6 }; bool v1smaller = std::lexicographical_compare(v1.begin(), v1.begin(), s2.begin(), s2.end());
lang/cpp/container.1586179987.txt.gz · Dernière modification : 2020/04/06 15:33 de root