Comment concaténer deux
std :: vector est un conteneur de séquence contigu dans la bibliothèque standard C ++. Son stockage est géré automatiquement, donc l'ajout d'éléments ou le redimensionnement peut amener le vecteur à allouer plus de mémoire. Utilisez cette balise pour les questions sur std :: vector ou impliquant un std :: vector.
Comment concaténer deux
Je veux imprimer le contenu d'un vecteur en C ++, voici ce que j'ai: #include <iostream> #include <fstream> #include <string> #include <cmath> #include <vector> #include <sstream> #include <cstdio> using namespace std; int main() { ifstream...
Quel est le moyen le plus rapide de réinitialiser chaque valeur de a std::vector<int>à 0 et de conserver la taille initiale des vecteurs? Une boucle for avec l'opérateur []?
Après de nombreuses recherches avec valgrind, j'ai conclu que std :: vector fait une copie d'un objet que vous voulez push_back. Est-ce vraiment vrai? Un vecteur ne peut pas garder une référence ou un pointeur d'un objet sans copie?!
J'aime beaucoup les vecteurs. Ils sont astucieux et rapides. Mais je sais que cette chose appelée valarray existe. Pourquoi utiliser un valarray au lieu d'un vecteur? Je sais que les valarrays contiennent du sucre syntaxique, mais à part ça, quand sont-ils
J'ai besoin de copier std::setvers std::vector: std::set <double> input; input.insert(5); input.insert(6); std::vector <double> output; std::copy(input.begin(), input.end(), output.begin()); //Error: Vector iterator not dereferencable Où est le
Si j'ai un vecteur de paires: std::vector<std::pair<int, int> > vec; Existe-t-il un moyen simple de trier la liste par ordre croissant en fonction du deuxième élément de la paire? Je sais que je peux écrire un petit objet de fonction qui fera le travail, mais y a-t-il un moyen...
Combien de données sont copiées, lors du retour d'un std :: vector dans une fonction et quelle sera la taille d'une optimisation pour placer le std :: vector en magasin libre (sur le tas) et renvoyer un pointeur à la place, c'est-à-dire: std::vector *f() { std::vector *result = new std::vector();...
Je recherche un moyen générique et réutilisable de mélanger un std::vectoren C ++. C'est comme ça que je le fais actuellement, mais je pense que ce n'est pas très efficace car il a besoin d'un tableau intermédiaire et il a besoin de connaître le type d'élément (DeckCard dans cet exemple):...
Je sais que at()c'est plus lent qu'à []cause de sa vérification des limites, qui est également discutée dans des questions similaires comme C ++ Vector at / [] operator speed ou :: std :: vector :: at () vs operator [] << résultats surprenants !! 5 à 10 fois plus lent / plus rapide! . Je ne...
J'ai le code Java suivant avec plusieurs grands tableaux qui ne changent jamais de taille. Il tourne en 1100 ms sur mon ordinateur. J'ai implémenté le même code en C ++ et utilisé std::vector. Le temps de l'implémentation C ++ qui exécute exactement le même code est de 8800 ms sur mon ordinateur....
J'utilise une bibliothèque externe qui à un moment donné me donne un pointeur brut vers un tableau d'entiers et une taille. Maintenant, j'aimerais utiliser std::vectorpour accéder et modifier ces valeurs en place, plutôt que d'y accéder avec des pointeurs bruts. Voici un exemple explicatif qui...
Considérez l'extrait de code suivant: #include <array> int main() { using huge_type = std::array<char, 20*1024*1024>; huge_type t; } Évidemment, cela planterait sur la plupart des plates-formes, car la taille de pile par défaut est généralement inférieure à 20 Mo. Considérez maintenant...
J'ai une fonction qui prend une dimension multidimensionnelle std::vectoret nécessite que la profondeur (ou le nombre de dimensions) soit transmise en tant que paramètre de modèle. Au lieu de coder en dur cette valeur, je voudrais écrire une constexprfonction qui prendra std::vectoret retournera la...
J'ai trouvé un comportement très étrange (sur clang et GCC) dans la situation suivante. J'ai un vecteur, nodesavec un élément, une instance de classe Node. J'appelle ensuite une fonction nodes[0]qui ajoute une nouvelle Nodeau vecteur. Lorsque le nouveau nœud est ajouté, les champs de l'objet...
Supposons que vous ayez le code suivant: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a :...
Disons que j'ai un vecteur d'entiers: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Ensuite, je le trie par ordre décroissant: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0;...
La question suivante est liée, mais les réponses sont anciennes, et le commentaire de l'utilisateur Marc Glisse suggère qu'il existe de nouvelles approches depuis C ++ 17 à ce problème qui pourraient ne pas être discutées de manière adéquate. J'essaie de faire fonctionner correctement la mémoire...