2017-06-29 3 views
-4

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?

+0

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

+0

Haben Sie versucht, [Dokumentation] (http://en.cppreference.com/w/cpp/container/vector) zu betrachten? – crashmstr

+0

@Curious gleich oder weniger ist der gleiche Fall – Slava

Antwort

3

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

1

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); 
+0

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! –

Verwandte Themen