J'ai actuellement un std::map<std::string,int>qui stocke une valeur entière dans un identifiant de chaîne unique, et je recherche la chaîne. Il fait principalement ce que je veux, sauf que cela ne suit pas l'ordre d'insertion. Ainsi, lorsque j'itère la carte pour imprimer les valeurs, elles sont triées en fonction de la …
En lisant comment utiliser std :: rand, j'ai trouvé ce code sur cppreference.com int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased Qu'est-ce qui ne va pas avec l'expression de droite? Je l'ai essayé et cela fonctionne parfaitement.
Je me suis retrouvé à écrire ceci il y a juste un peu: template <long int T_begin, long int T_end> class range_class { public: class iterator { friend class range_class; public: long int operator *() const { return i_; } const iterator &operator ++() { ++i_; return *this; } iterator …
ifstream f; f.open(fileName); if ( f.fail() ) { // I need error message here, like "File not found" etc. - // the reason of the failure } Comment obtenir un message d'erreur sous forme de chaîne?
Vaut mille mots: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return 0; …
C ++ 11 a ajouté de nouvelles fonctions de conversion de chaîne: http://en.cppreference.com/w/cpp/string/basic_string/stoul Il inclut stoi (chaîne en entier), stol (chaîne en long), stoll (chaîne en long long), stoul (chaîne en long non signé), stoull (chaîne en long non signé). Notable en son absence est une fonction stou (chaîne non …
#include <iostream> #include <cmath> /* Intentionally incorrect abs() which seems to override std::abs() */ int abs(int a) { return a > 0? -a : a; } int main() { int a = abs(-5); int b = std::abs(-5); std::cout<< a << std::endl << b << std::endl; return 0; } Je m'attendais …
Pourquoi std::initializer_listun langage de base n'est-il pas intégré? Il me semble que c'est une fonctionnalité assez importante de C ++ 11 et pourtant il n'a pas son propre mot-clé réservé (ou quelque chose de similaire). Au lieu de cela, initializer_listil s'agit simplement d' une classe de modèle de la bibliothèque …
Existe-t-il un moyen de remplacer toutes les occurrences d'une sous-chaîne par une autre chaîne dans std::string? Par exemple: void SomeFunction(std::string& str) { str = str.replace("hello", "world"); //< I'm looking for something nice like this }
Je vois souvent du code source utiliser des types comme uint32, uint64 et je me demande s'ils devraient être définis par le programmeur dans le code de l'application ou s'ils sont définis dans un en-tête de lib standard. Quelle est la meilleure façon d'avoir ces types sur le code source …
J'essaie de comprendre comment std::unique_ptrfonctionne et pour cela j'ai trouvé ce document. L'auteur part de l'exemple suivant: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); // …
J'essaie de compiler en utilisant g++et les indicateurs -std=c++11ou c++0x. Cependant, j'obtiens cette erreur cc1plus: error: unrecognized command line option "-std=c++11" g ++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is …
J'ai essayé de trouver l'intersection entre deux std :: set en C ++, mais j'obtiens toujours une erreur. J'ai créé un petit exemple de test pour cela #include <iostream> #include <vector> #include <algorithm> #include <set> using namespace std; int main() { set<int> s1; set<int> s2; s1.insert(1); s1.insert(2); s1.insert(3); s1.insert(4); s2.insert(1); …
J'ai récemment modifié du code et j'ai trouvé un bogue préexistant sur une ligne dans une fonction: std:;string x = y; Ce code se compile toujours et fonctionne comme prévu. La définition de chaîne fonctionne parce que ce fichier est using namespace std;, donc le std::n'était pas nécessaire en premier …
C ++ 0x ajoute hash<...>(...). Je n'ai pas trouvé de hash_combinefonction cependant, comme présenté en boost . Quelle est la manière la plus propre de mettre en œuvre quelque chose comme ça? Peut-être, en utilisant C ++ 0x xor_combine?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.