désolé pour mon mauvais anglaisComment insérer * char dans le vecteur <string> "[i]"? [C++]
j'ai char *c
et je dois insérer dans "i" position dans un vector <string>
Quelqu'un peut-il aider?
désolé pour mon mauvais anglaisComment insérer * char dans le vecteur <string> "[i]"? [C++]
j'ai char *c
et je dois insérer dans "i" position dans un vector <string>
Quelqu'un peut-il aider?
char *
peut être (implicitement) converti en std::string
, puis insérez-le dans la bonne position:
vec.insert(vec.begin() + i, std::string(c));
Bien sûr, vous devez être sûr que vec
taille est plus grande ou égale à i
. Détails peuvent être trouvés dans documentation
Pour insérer quelque chose dans un vecteur, vous devez utiliser l'une de ses méthodes insert
. Par exemple
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
int main()
{
std::vector<std::string> v = { "Christian", "Assis" };
const char *s = "Hello";
size_t i = 0;
v.insert(std::next(v.begin(), i), s);
for (const auto &s : v) std::cout << s << ' ';
std::cout << std::endl;
return 0;
}
La sortie du programme est
Hello Christian Assis
Vous pouvez ajouter un contrôle si la valeur de la position i
est inférieur ou égal au nombre d'éléments dans le vecteur.
Par exemple
v.insert(std::next(v.begin(), v.size() < i ? v.size() : i), s);
Merci Slava et Vlad !! :) Désolé pour la question, je juste la programmation en C et j'ai eu besoin d'insérer des variables de C++. J'ai compris vos jurons, ils ont travaillé! –
La réponse varie grandement pour savoir si le vecteur a plus, égale ou moins de 'éléments î' avant l'insertion. Laquelle est-ce? – Curious
Avez-vous essayé de regarder [documentation] (http://fr.cppreference.com/w/cpp/container/vector)? – crashmstr
@Curious égal ou inférieur est le même cas – Slava