Articles of std

Itérateur horizontal

Y at-il une implémentation d’iterator existante (peut-être sous boost) qui implémente une sorte d’iterator d’aplatissement? Par exemple: unordered_set<vector > s; s.insert(vector()); s.insert({1,2,3,4,5}); s.insert({6,7,8}); s.insert({9,10,11,12}); flattening_iterator<unordered_set<vector >::iterator> it( … ), end( … ); for(; it != end; ++it) { cout << *it << endl; } //would print the numbers 1 through 12

std :: ssortingng vs ssortingng dans c ++

Dupliqués possibles: Pourquoi utiliser ‘namespace std;’ considérée comme une mauvaise pratique en C ++? Utiliser l’espace de noms std J’ai tourné autour d’un tas de forums différents et je semble voir cette pop up à chaque fois. C’est une question très débutante. Je définis généralement un programme avec #include using namespace std; ssortingng x; Je […]

Comment effacer des éléments de conteneurs STL?

Comment effacer des éléments de conteneurs STL, ayant une valeur spécifiée ou satisfaisant à certaines conditions ? Existe-t-il une seule façon commune ou uniforme de le faire pour différents types de conteneurs?

Quand est-il nécessaire d’utiliser le drapeau -stdlib = libstdc ++?

Quand est-il nécessaire d’utiliser le drapeau -stdlib=libstdc++ pour le compilateur et l’éditeur de liens lors de la compilation avec gcc? Le compilateur utilise-t-il automatiquement libstdc ++? J’utilise gcc4.8.2 sur Ubuntu 13.10 et j’aimerais utiliser le standard c ++ 11. Je passe déjà -std=c++11 au compilateur.

Quel est le moyen le plus rapide de changer une clé d’un élément dans std :: map

Je comprends les raisons pour lesquelles on ne peut pas faire ça (rééquilibrage et autres): iterator i = m.find(33); if (i != m.end()) i->first = 22; Mais jusqu’à présent, le seul moyen de changer la clé (à ma connaissance) consiste à supprimer le nœud de l’arborescence et à insérer la valeur avec une clé différente: […]

Tri des conteneurs compressés (verrouillés) en C ++ à l’aide de boost ou de la STL

Ce que je veux faire: Je veux sortinger 2, 3 ou N vecteurs, verrouillés ensemble, sans les copier dans un tuple. C’est-à-dire, en laissant de la verbosité de côté, quelque chose comme: vector v1 = { 1, 2, 3, 4, 5}; vector v2 = { 11, 22, 33, 44, 55}; vector v3 = {111, 222, […]

Meilleur moyen d’append un vecteur au vecteur

std::vector a; std::vector b; std::vector c; Je voudrais concaténer ces trois vecteurs en ajoutant les éléments de b et de c à a . Quel est le meilleur moyen de le faire et pourquoi? 1) En utilisant vector::insert : a.reserve(a.size() + b.size() + c.size()); a.insert(a.end(), b.begin(), b.end()); a.insert(a.end(), c.begin(), c.end()); b.clear(); c.clear(); 2) En utilisant […]

Comment créer une fonction std :: à partir d’une expression lambda à capture de mouvement?

J’essaie de créer une std::function partir d’une expression lambda à capture de mouvement. Notez que je peux créer une expression lambda sans capture de mouvement. c’est seulement quand j’essaye de l’envelopper dans une std::function que j’obtiens une erreur. Par exemple: auto pi = std::make_unique(0); // no problems here! auto foo = [q = std::move(pi)] { […]

Tri de std :: map en utilisant la valeur

Je dois sortinger une std::map par valeur plutôt que par clé. Y a-t-il un moyen facile de le faire? J’ai une solution du fil suivant: std :: map sortinger par données? Y a-t-il une meilleure solution? map testMap; // some code to generate the values in the map. sort(testMap.begin(), testMap.end()); // is there any function […]

Pourquoi ne pouvez-vous pas prendre l’adresse de nullptr?

Dans le standard C ++ 11, je ne comprends pas la raison pour laquelle il est interdit de prendre l’adresse de nullptr alors que l’on est autorisé à prendre l’adresse de leurs propres instances std :: nullptr_t. Mis à part le fait que nullptr est un mot-clé réservé, existe-t-il un raisonnement spécifique pour cette décision? […]