2017-06-29 8 views
-4

のため、申し訳ありません私の悪い英語ベクトルのinsert * charの意味<string> "[i]"? [C++]

私持っchar *cと私はvector <string>

は、誰かが助けることができるの "I" の位置に挿入する必要がありますか?

+0

例えば。どちらですか? – Curious

+0

[documentation](http://en.cppreference.com/w/cpp/container/vector)を見てみましたか? – crashmstr

+0

@Curiousが等しいかそれ以下の場合 – Slava

答えて

3

char *は(暗黙的に)することができ、適切な位置に挿入し、その後、std::stringに変換:もちろん

vec.insert(vec.begin() + i, std::string(c)); 

をあなたはvecサイズがiより大きいか等しいことを確認する必要があります。詳細はdocumentation

1

で検索できます。ベクターに何かを挿入するには、insertのいずれかの方法を使用する必要があります。例えば

#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; 
} 

ためのプログラム出力は、位置iの値は以下のベクター内の要素の数に等しいかどうかチェックを追加することができ

Hello Christian Assis 

あります。

答えがベクターに等しい又は挿入前 `i`要素よりも少ない、より多くを持っているかどうかのために大幅に変化するであろう

v.insert(std::next(v.begin(), v.size() < i ? v.size() : i), s); 
+0

SlavaとVladに感謝します! :) 申し訳ありませんが、私はCでプログラミングしており、C++の挿入変数が必要でした。 私はあなたの恥知らずを理解し、彼らは働いた! –

関連する問題