Questions marquées «stl»

La bibliothèque de modèles standard, ou STL, est une bibliothèque C ++ de conteneurs génériques, d'itérateurs, d'algorithmes et d'objets de fonction. Lorsque le C ++ a été normalisé, de grandes parties de la STL ont été adoptées dans la bibliothèque standard, et ces parties de la bibliothèque standard sont aussi parfois appelées à tort collectivement «la STL».


6
Comment spécifier un pointeur vers une fonction surchargée?
Je souhaite transmettre une fonction surchargée à l' std::for_each()algorithme. Par exemple, class A { void f(char c); void f(int i); void scan(const std::string& s) { std::for_each(s.begin(), s.end(), f); } }; Je m'attendrais à ce que le compilateur résolve f()par le type d'itérateur. Apparemment, cela (GCC 4.1.2) ne le fait pas. …
137 c++  stl 

5
Opérateur de double adresse C ++? (&&)
Je lis le code source de STL et je n'ai aucune idée de ce que l' &&opérateur d'adresse est censé faire. Voici un exemple de code tiré de stl_vector.h: vector& operator=(vector&& __x) // <-- Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } "Adresse d'adresse" …



2
Comment définir la taille initiale de std :: vector?
J'ai un vector<CustomClass*>et j'ai mis beaucoup d'éléments dans le vecteur et j'ai besoin d'un accès rapide, donc je n'utilise pas de liste. Comment définir la taille initiale du vecteur (par exemple 20 000 places, donc pour éviter la copie lorsque j'en insère un nouveau)?
130 c++  stl 

7
Pourquoi std :: queue :: pop ne renvoie pas de valeur.?
J'ai parcouru cette page mais je ne suis pas en mesure d'en obtenir la même raison. Là, il est mentionné que "il est plus judicieux pour lui de ne renvoyer aucune valeur et de demander aux clients d'utiliser front () pour inspecter la valeur au début de la file d'attente" …
123 c++  stl 




13
remove_if équivalent pour std :: map
J'essayais d'effacer une gamme d'éléments de la carte en fonction de conditions particulières. Comment le faire en utilisant les algorithmes STL? Au départ j'ai pensé à utiliser remove_ifmais ce n'est pas possible car remove_if ne fonctionne pas pour les conteneurs associatifs. Existe-t-il un algorithme équivalent "remove_if" qui fonctionne pour la …
118 c++  stl  map 


4
Comment surcharger std :: swap ()
std::swap()est utilisé par de nombreux conteneurs std (tels que std::listet std::vector) pendant le tri et même l'affectation. Mais l'implémentation std de swap()est très généralisée et plutôt inefficace pour les types personnalisés. Ainsi, l'efficacité peut être gagnée en surchargeant std::swap()avec une implémentation spécifique de type personnalisé. Mais comment pouvez-vous l'implémenter pour …

5
L'accès à la carte C ++ rejette les qualificatifs (Const)
Le code suivant indique que le fait de transmettre la carte comme constdans la operator[]méthode rejette les qualificatifs: #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper …
113 c++  stl  const  maps 

9
Quelle est la manière préférée / idiomatique d'insérer dans une carte?
J'ai identifié quatre façons différentes d'insérer des éléments dans un std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); Laquelle de ces méthodes est la méthode préférée / idiomatique? (Et y a-t-il un autre moyen auquel je n'ai pas pensé?)
113 c++  stl  insert  stdmap  std-pair 

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.