sorry, für mein schlechtes EnglischWie einfügen * char in Vektor <string> "[i]"? [C++]
ich habe char *c
und ich brauche in ein in "i" Position einfügen vector <string>
Kann jemand helfen?
sorry, für mein schlechtes EnglischWie einfügen * char in Vektor <string> "[i]"? [C++]
ich habe char *c
und ich brauche in ein in "i" Position einfügen vector <string>
Kann jemand helfen?
char *
kann (implizit) sein umgewandelt std::string
, dann ist es in die richtige Position ein:
vec.insert(vec.begin() + i, std::string(c));
natürlich Sie müssen sicher sein, dass vec
Größe größer oder gleich ist als i
. Details finden Sie in documentation
Um etwas in einen Vektor einzufügen, sollten Sie eine der Methoden insert
verwenden. Zum Beispiel
#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;
}
Die Programmausgabe ist
Hello Christian Assis
Sie einen Scheck hinzufügen können, ob der Wert der Position i
kleiner oder gleich der Anzahl der Elemente in dem Vektor.
Zum Beispiel
v.insert(std::next(v.begin(), v.size() < i ? v.size() : i), s);
Danke Slava und Vlad !! :) Sorry für die Frage, ich programmiere nur in C und ich brauchte Einfügen Variablen von C++. Ich verstand Ihre Kraftausdrücke, sie arbeiteten! –
Die Antwort für stark variieren, ob der Vektor hat mehr als, gleich oder weniger als 'I' Elemente vor dem Einsetzen. Welches ist es? – Curious
Haben Sie versucht, [Dokumentation] (http://en.cppreference.com/w/cpp/container/vector) zu betrachten? – crashmstr
@Curious gleich oder weniger ist der gleiche Fall – Slava